I want to assign string to bytes array:
var arr [20]byte
str := \"abc\"
for k, v := range []byte(str) {
arr[k] = byte(v)
}
Have another m
For converting from a string to a byte slice, string -> []byte:
[]byte(str)
For converting an array to a slice, [20]byte -> []byte:
arr[:]
For copying a string to an array, string -> [20]byte:
copy(arr[:], str)
Same as above, but explicitly converting the string to a slice first:
copy(arr[:], []byte(str))
copy function only copies to a slice, from a slice.[:] makes an array qualify as a slice.copy will only copy the part of the string that fits.This code:
var arr [20]byte
copy(arr[:], "abc")
fmt.Printf("array: %v (%T)\n", arr, arr)
...gives the following output:
array: [97 98 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] ([20]uint8)
I also made it available at the Go Playground