("a"[0] + 'a') 和 (byte(97) + rune(97)) 有什么区别?

daGaiGuanYu · · 1427 次点击
jan-bar
想要拥有,必定付出。
第一个`'a'`相当于`const`常量,编译时直接计算。而第二行则是运行时计算,类型都不一样当然报错。你看下图第二种情况,也一样报错。你得了解一下go里面`const`的规范,特别是你的第一种情况是个无类型的`const`,没有类型当然可以和其他类型结合了。 ![image.png](https://static.golangjob.cn/230105/44e0435f405c0275326cb99e4a3afc13.png)
#1
更多评论
私认为没那多弯弯绕绕的道理,就是因为:虽然是数字类型, Go 也只允许相同的类型才能运算,byte 底层是 uint8,rune 底层是 int32
#2
感谢指点,刚开始学 go,啥也不懂哈哈哈
#3