channels[i] <- 'a' + i 后返回b,c,d的疑问
来源:11-1 channel

weixin_慕九州8013434
2021-04-13
老师你好,在本节课里
for i := 0; i < 10; i++{
channels[i] <- 'a' + i
}
这段代码,我没转过来,定义的channel[i]数组接收字符a+i,得到的不应该是a012…吗,怎么打印的是a,b,c,d呢,还望老师不吝教导下,谢谢了
写回答
1回答
-
是的。go是强类型语言,字符串和整数是不能相加的。我们看下面的情况:
"a"+1,注意,这里是双引号,代表字符串a与整数1相加,无法编译。
"a"+"1",得出"a1"
'a'+1,这里'a'是单引号,代表rune类型,rune是int32的别名,所以'a'+1可以相加。加出来的结果是'b'的ascii码。我们后面用%c,按照字符来打印的时候,就出来了b。
'a'+'1',也可以加,不过是'a'的ascii码加上'1'的ascii码,这个结果没什么意义。
"a"+'1',当然不可以,类似字符串和整数相加,编译错误。
012021-04-21
相似问题