我正在从 C 背景自学 Go。下面的代码按我的预期工作(前两个Printf()
将访问字节,后两个Printf()
将访问代码点)。
我不清楚的是这是否涉及任何数据复制。
package main
import "fmt"
var a string
func main() {
a = "èe"
fmt.Printf("%d\n", a[0])
fmt.Printf("%d\n", a[1])
fmt.Println("")
fmt.Printf("%d\n", []rune(a)[0])
fmt.Printf("%d\n", []rune(a)[1])
}
换句话说:
确实会
[]rune("string")
创建一个符文数组并用对应的符文填充它"string"
,还是只是编译器弄清楚如何从字符串字节中获取符文?