我是 Go 的完全新手。努力学习。我注意到这两个声明之间有一个奇怪的区别:
var arr = [3]int {1,2,3}
var i int8 = 5
我的意思是“=”运算符的位置。这背后有什么我应该知道的故事吗?从 C++ 程序员的角度来看,第一个对我来说看起来很可疑。闻起来像一个临时对象的分配,即创建,然后复制到左侧目标。有人可以澄清这一点吗?是否有任何与性能相关的问题?
第一个语句中变量的类型是从值中推断出来的。第二条语句中变量的类型是明确指定的。根据在编译时确定类型的方式,没有运行时性能差异。
= 符号在两个变量声明中的位置相同:在值之前
这两个语句的任何性能差异都是使用不同类型和值的结果。
第一个声明可以用显式类型编写,但它比需要的更冗长:
var arr [3]int = [3]int{1,2,3}
第二个声明可以用推断类型编写:
var i = int8(5)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句