Golang:无法理解代码的执行方式

时间:2018-01-15 13:53:54

标签: arrays go

以下是我查询的代码: 我有一个单维数组a 我打印/data时无法理解为什么它会返回字符a[0][0]的ascii值:

a

输出: 97

2 个答案:

答案 0 :(得分:0)

以下是有关如何打印ascii

的代码示例
a := [3]string{"a","b","c"} 

for _, rune := range a {
   fmt.Println(rune)// It will print a,b,c
}

因为你在代码中使用了[0] [0]它是等价的

for _, rune := range a {
   fmt.Println(rune[0])// It will print 97,98,99
   // rune is equal to x := 'a'
   // when you write it like x := 'a' and
   // fmt.Println(x) the output is 97
}

答案 1 :(得分:-1)

您误解了如何访问切片中的字符串(Golang翻译使用array)。如果您有兴趣在切片内打印单个值,那么

fmt.Println(a[0]) --> print a
fmt.Println(a[1]) --> print b
fmt.Println(a[2]) --> print c

您在代码中所做的是访问字符串的第一个元素(因此您正在访问字符串的字节,在这种情况下97是' a'值)。