-1
Goの文字列を繰り返し処理する単純な方法を2つ使用しました。最初のものは正しいようですが、2番目の方法は-97で始まるマイナスの数字になっています。なぜ誰かが知っているだろうか?Goの文字列反復の結果が異なります
func main() {
str := "abc"
for i := 0; i < len(str) ; i++ {
println(str[i] - 'a')
}
for x := range str {
println(x - 'a')
}
}
結果は -
0
1
2
-97
-96
-95
「range」は最初にインデックスを返します。 https://golang.org/ref/spec#For_range – JimB