Go语言中能否通过一行无循环代码对字符串字面量进行切片?
Go语言中字符串字面量的切片操作
- 完全可以对字符串字面量执行切片操作。在Go语言里,字符串字面量属于
string类型,而字符串本身是不可变的字节序列,天然支持切片语法。 - 你提到的
'test'[0:3]这种写法本身就是一行无循环的合法代码,直接执行就能得到切片结果"tes"。此外还可以使用简化的切片写法:- 省略起始索引时默认从0开始:
'test'[:2]→"te" - 省略结束索引时默认到字符串末尾:
'test'[1:]→"est" - 甚至可以直接写
'test'[:],得到原字符串的完整副本
- 省略起始索引时默认从0开始:
需要注意的是,Go的字符串切片是基于字节的,对于包含非ASCII字符(比如中文)的字符串,直接按字节切片可能会导致乱码,这种情况可以用一行代码转成[]rune处理后再转回字符串,比如string([]rune("测试字符串")[:2]) → "测试"
内容的提问来源于stack exchange,提问作者Qr_tz
相关产品推荐
相关产品推荐

