多平台统一管理软件接口,如何实现多平台统一管理软件接口
289
2022-06-17
在Go中字符串作为内建类型,和C语言是不一样的。C中没有字符串类型, 所有需要通过字符数组来表示字符串,并以指针来传递。
在Go中字符串是一个定长字符数组,所以当其创建之后就无法直接改变了。
1、错误的字符串长度的获取:
从字符串字面值看len(s)的结果应该是7,但在Golang中string类型的底层是通过byte数组实现的,在unicode编码中,中文字符占两个字节,而在utf-8编码中,中文字符占三个字节而Golang的默认编码正是utf-8.
2、正确的字符串长度获取:
那么问题来了,rune[ ]是个啥?
有时需要将一个类型转换为另一个类型。在 Go 中可以做到,不过有一些规则。首先,将一个值转换为另一个是由操作符(看起来像函数:byte())完成的,并且不是所有的转换都是允许的。
Go语言中 byte和 rune实质上就是 uint8和 int32类型。byte用来强调数据是raw data,而不是数字;而 rune用来表示 Unicode的 code point。所以需要遍历字符串中的字符。可以循环每个字节(仅在使用 US ASCII 编码字符串时与字符等价,而它们在 Go 中不存在!)。因此为了获得实际的字符,需要使用 rune 类型。
3、非解释性字符串:
在多行字符串处理时,需要留意分号的置入。栗子:
s := "I am coco"
+ "I am lolo"
会被转换成:
s := "I am coco";
+ "I am lolo";
4、字符串切片:
5、字符串遍历:
6、字符串修改:
7、字符串包Strings操作:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~