• 5.6 字符串和字节数组
    • 链接

    5.6 字符串和字节数组

    字符串和字节数组有密切关系,我们可以轻易的将它们转换成对方:

    1. stra := "the spice must flow"
    2. byts := []byte(stra)
    3. strb := string(byts)

    事实上,这也是大多数类型的转换方式。一些函数明确指定一个int32或者int64或者相应的无符号类型。你可能会发现你自己不得不像下面一样:

    1. int64(count)

    尽管如此,当提到字节数组和字符串时,这可能是你会一直接触的东西。在你使用[]byte(X)或者string(X)时务必注意,你创建的是数据的拷贝。这是由于字符串的不可变性。

    当字符串有由unicode字符码runes组成时。如果你计算字符串的长度时,可能得到的结果和你期待的不同。下面结果是输出3:

    1. fmt.Println(len("￿"))

    如果你通过range遍历一个字符串,你将得到runes,而不是bytes。当然,当你将一个字符串转换成一个[]byte时,你将得到正确的数据。

    链接

    • 目录
    • 上一节:空接口和转换
    • 下一节:函数类型