Golang string 笔记 - Go语言中文社区

Golang string 笔记


Golang 中的字符串,有两种表示方法:

s1 := "hello, world"
s2 := `hello, world.
send using Golang`

Golang 中没有字符类型(就是 C 中的 char),字符串都是 rune 类型。Golang 中字符串以 UTF-8 编码后存储,存储的是字节。

UTF-8 实际是上一种变长编码,一个字符(一个中文字或其他语言的文字)可能以 1 个、2 个或 3 个字节来存储。作为对比,一个 ASCII 字符只需要一个字节,当然 ASCII 可以表示的字符就比较有限了。

在 Golang 中,字符串的内容一但被创建,是不能被修改的。如果需要修改字符串,可以将字符串转换为 []byte 或者 []rune。需要特别指出的一点是在使用 for ... range 遍历字符串中的字符时,Golang 会自动将 string 转换为 []rune,然后再遍历字符串。例如:

 s := "hello 世界"
for i, v := range s {
    fmt.Printf("%v = %cn", i, v)
}

输出:

0 = h
1 = e
2 = l
3 = l
4 = o
5 =  
6 = 世
9 = 界

len(s) 返回的是字符串 s 的字节数。

版权声明:本文来源简书,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://www.jianshu.com/p/e5a6e5e8ebf1
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-01-09 22:17:02
  • 阅读 ( 1129 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢