我想将字符串分配给字节数组:
var arr [20]byte str := "abc" for k, v := range []byte(str) { arr[k] = byte(v) }
有别的方法吗?
安全简单:
[]byte("Here is a string....")
要将字符串转换为字节切片,请执行以下操作string -> []byte:
string -> []byte
[]byte(str)
要将数组转换为切片,请执行以下操作[20]byte -> []byte:
[20]byte -> []byte
arr[:]
要将字符串复制到数组,请执行以下操作string -> [20]byte:
string -> [20]byte
copy(arr[:], str)
与上面相同,但首先将字符串显式转换为切片:
copy(arr[:], []byte(str))
copy
[:]
这段代码:
var arr [20]byte copy(arr[:], "abc") fmt.Printf("array: %v (%T)\n", arr, arr)
…给出以下输出:
array: [97 98 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] ([20]uint8)