草庐IT

as_bytes

全部标签

byte - 如何将 4 字节的 slice 转换为 rune ?在围棋

我有rune的内存表示key:=make([]byte,4)现在,如何将它转换为rune? 最佳答案 有一个专用的DecodeRune功能:funcDecodeRune(p[]byte)(rrune,sizeint)DecodeRuneunpacksthefirstUTF-8encodinginpandreturnstheruneanditswidthinbytes.Iftheencodingisinvalid,itreturns(RuneError,1),animpossibleresultforcorrectUTF-8.所以你只

types - 不能在函数参数中使用 document[0](类型 uint8)作为类型 []byte

我正在尝试从文档中提取一个JSON字符串并放入GOlang中的SimpleJson中,尽管我遇到了类型问题(再次..)我收到以下错误:cannotusedocument[0](typeuint8)astype[]byteinfunctionargument出错的行是:js,err:=simplejson.NewJson(document[0])谁能帮我解决这个问题,还有我可以阅读有关类型和转换的好地方吗?来自没有类型的php和转换很简单的python,GO在这方面有点困惑。谢谢:-) 最佳答案 首先,uint8只是byte的别名。因

go - byte内置类型,不应该是uint8吗?

我发现typebytebyte在bytegodoc中非常困惑,不应该是typebyteuint8吗?byteisanaliasforuint8andisequivalenttouint8inallways.Itisused,byconvention,todistinguishbytevaluesfrom8-bitunsignedintegervalues.typecomplex128 最佳答案 没有真正的内置包。但是为了解释内建函数,为godoc生成了一个带有synthetic类型的内建函数包。byte类型从未真正声明为typeby

go - 如何从 []byte 转换为 [16]byte?

我有这个代码:funcmy_function(hashstring)[16]byte{b,_:=hex.DecodeString(hash)returnb//Compileerror:failssince[16]byte!=[]byte}b将是[]byte类型。我知道hash的长度为32。如何使上面的代码工作?IE。我可以以某种方式从通用长度字节数组转换为固定长度字节数组吗?我对分配16个新字节并复制数据不感兴趣。 最佳答案 没有直接的方法可以将slice转换为数组。但是,您可以复制一份。varret[16]bytecopy(ret

go - bytes.Buffer 的限制?

我正在尝试使用包“compress/gzip”压缩一段字节。我正在写入一个bytes.Buffer并且我正在写入45976字节,当我尝试使用gzip.reader解压缩内容然后使用阅读器函数时-我发现并非所有内容都已恢复。bytes.buffer有一些限制吗?这是一种绕过或改变它的方法吗?这是我的代码(编辑):funccompress_and_uncompress(){varbufbytes.Bufferw:=gzip.NewWriter(&buf)i,err:=w.Write([]byte(long_string))if(err!=nil){log.Fatal(err)}w.Clos

go - 如何将 []byte 数据转换为 uint16?

我有以下十六进制数据:0xB01B;它的45083为uint16;如何在go中将其转换为uint16? 最佳答案 使用encoding/binary包裹:import("encoding/binary")data:=[]byte{0xB0,0x1B}val:=binary.BigEndian.Uint16(data)https://play.golang.org/p/wHW8KDgls9 关于go-如何将[]byte数据转换为uint16?,我们在StackOverflow上找到一个类似

golang : difference between var b Buffer and bytes. 缓冲区{}

varbbytes.Buffer//ABufferneedsnoinitialization.b:=bytes.Buffer{}这两个有什么区别?我在这里试过:http://play.golang.org/p/lnkkULeIYm没看出区别。谢谢, 最佳答案 :=是var的简写语法,在这种情况下b是一个零值bytes.Buffer。varbbytes.Buffer//isthesameasvarb=bytes.Buffer{}//isthesameasb:=bytes.Buffer{}您不能在函数外使用简写版本,因此对于全局变量,您

戈朗 : How to printf % x for bytes in a struct?

varb[88]byten,err:=file.Read(b[:])fmt.Printf("bytesread:%dBytes:[%x]\n",n,b)上面以十六进制打印字节我有一个这样的结构typeSomeStructstruct{field1[]bytefield2[]byte}someStructInstance:=SomeStruct{[249190180217],[29100]}fmt.Println(someStructInstance)=>{[249190180217][29100]}但理想情况下我希望它打印十六进制=>{[f9beb4d9][1d010000]}我该怎么

go - 将 JSON 对象 "as is"存储到数据存储中

我必须将嵌套结构存储到数据存储中。当我遇到数据存储:展平嵌套结构导致sliceslice:字段问题,我想将JSON对象按原样(作为字符串?)存储到数据存储区。这在Go中可行吗? 最佳答案 是的,它在golang中可行无论您的数据存储多么复杂(或嵌套),都可以将其转换为json。只要确保map的键是一个字符串。还要确保数据存储的元素是公开的(以大写字母开头)。如果您不想对某个字段进行编码,您可以将其设为私有(private)(以小写字母开头)。json.Marshal()将返回一个字节数组,可以将其保存到文件中。typeComplex

string - 无法在多重分配中将 []byte 分配给 z(字符串类型)

我试图在文件夹中查找文件的内容,因此我列出了文件夹中的内容,然后在遍历它的同时尝试读取文件。files,_:=ioutil.ReadDir("documents/")for_,f:=rangefiles{//fmt.Println(f.Name())z:="documents/"+f.Name()fmt.Println(z)//printsout'documents/*docname*'recursivelyz,err:=ioutil.ReadFile(z)//Thislinethrowsuptheerror我得到的错误是:test.go:85:cannotassign[]byteto