是否可以对字符串文字进行切片?

问题描述 投票:0回答:1

我们可以在 Go 中像

'test'[0:3]
这样在 1 行代码中不使用循环来切片字符串吗?

go indexing string-literals
1个回答
0
投票

是的。

切片表达式适用于字符串,包括字符串文字:

对于无类型字符串操作数,结果是字符串类型的非常量值。

package main

import "fmt"

func main() {
    b := "Hello, 世界"[1:3]
    fmt.Println(b) 
    // prints el
}

通常需要注意的是,对字符串进行切片适用于字符串字节。如果您对多字节符文进行切片,您将得到损坏的数据:

func main() {
    b := "Hello, 世界"[8:9]
    fmt.Println(b)
    // prints � and not 世
}
© www.soinside.com 2019 - 2024. All rights reserved.