要点

  • a string is in effect a read-only slice of bytes

  • string可以存储任意的bytes

  • 字符串字面值是utf-8编码的,所以赋给string时,string存储的也是utf-8编码序列

  • 使用range得到的是字符(rune)序列

    1
    2
    3
    for _, b := range str {
    fmt.Printf("%T,%v\n", b, b)
    }
  • 使用for迭代,来访问utf-8字节(byte)

    1
    2
    3
    for i := 0; i < len(str); i++ {
    fmt.Printf("%v:%T, %v\n", i, str[i], str[i])
    }
  • rune的意思的code point(unicode码元), 底层类型为int32

参考

  1. https://blog.golang.org/strings
  2. http://golanghome.com/post/207

留言

2015-11-02