我想将字符串分配给bytes数组:
var arr [20]byte
str := "abc"
for k, v := range []byte(str) {
arr[k] = byte(v)
}
Run Code Online (Sandbox Code Playgroud)
有另一种方法吗?
ope*_*onk 503
安全简单:
[]byte("Here is a string....")
Run Code Online (Sandbox Code Playgroud)
Ale*_*der 128
要从字符串转换为字节切片,请执行以下操作string -> []byte:
[]byte(str)
Run Code Online (Sandbox Code Playgroud)
要将数组转换为切片,请执行以下操作[20]byte -> []byte:
arr[:]
Run Code Online (Sandbox Code Playgroud)
将字符串复制到数组时,string -> [20]byte:
copy(arr[:], str)
Run Code Online (Sandbox Code Playgroud)
与上面相同,但首先将字符串显式转换为切片:
copy(arr[:], []byte(str))
Run Code Online (Sandbox Code Playgroud)
copy功能只复制到片,由片.[:]使数组有资格作为切片.copy则只复制适合的字符串部分.这段代码:
var arr [20]byte
copy(arr[:], "abc")
fmt.Printf("array: %v (%T)\n", arr, arr)
Run Code Online (Sandbox Code Playgroud)
...给出以下输出:
array: [97 98 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] ([20]uint8)
Run Code Online (Sandbox Code Playgroud)
我也在Go Playground上找到了它
pet*_*rSO 107
例如,
package main
import "fmt"
func main() {
s := "abc"
var a [20]byte
copy(a[:], s)
fmt.Println("s:", []byte(s), "a:", a)
}
Run Code Online (Sandbox Code Playgroud)
输出:
s: [97 98 99] a: [97 98 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
Run Code Online (Sandbox Code Playgroud)
Sam*_*raf 41
小菜一碟:
arr := []byte("That's all folks!!")
Run Code Online (Sandbox Code Playgroud)
che*_*oza 24
我认为这更好..
package main
import "fmt"
func main() {
str := "abc"
mySlice := []byte(str)
fmt.Printf("%v -> '%s'",mySlice,mySlice )
}
Run Code Online (Sandbox Code Playgroud)
点击此处:http://play.golang.org/p/vpnAWHZZk7
您需要一种将[]字符串转换为[] byte类型的快速方法。用于诸如将文本数据存储到随机访问文件中或需要输入数据为[] byte类型的其他类型的数据操作的情况下。
package main
func main() {
var s string
//...
b := []byte(s)
//...
}
Run Code Online (Sandbox Code Playgroud)
当使用ioutil.WriteFile时,这很有用,它接受一个字节片作为其数据参数:
WriteFile func(filename string, data []byte, perm os.FileMode) error
Run Code Online (Sandbox Code Playgroud)
另一个例子
package main
import (
"fmt"
"strings"
)
func main() {
stringSlice := []string{"hello", "world"}
stringByte := strings.Join(stringSlice, " ")
// Byte array value
fmt.Println([]byte(stringByte))
// Corresponding string value
fmt.Println(string([]byte(stringByte)))
}
Run Code Online (Sandbox Code Playgroud)
输出:
[10410110810811132119119114108100]你好世界
请检查链接游乐场