字符串和字节数组有密切关系,我们可以轻易的将它们转换成对方:
stra := "the spice must flow" byts := []byte(stra) strb := string(byts)
事实上,这也是大多数类型的转换方式。一些函数明确指定一个int32或者int64或者相应的无符号类型。你可能会发现你自己不得不像下面一样:
int32
int64
int64(count)
尽管如此,当提到字节数组和字符串时,这可能是你会一直接触的东西。在你使用[]byte(X)或者string(X)时务必注意,你创建的是数据的拷贝。这是由于字符串的不可变性。
[]byte(X)
string(X)
当字符串有由unicode字符码runes组成时。如果你计算字符串的长度时,可能得到的结果和你期待的不同。下面结果是输出3:
unicode
runes
fmt.Println(len(""))
如果你通过range遍历一个字符串,你将得到runes,而不是bytes。当然,当你将一个字符串转换成一个[]byte时,你将得到正确的数据。
range
bytes
[]byte
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8