【发布时间】:2014-08-26 15:42:42
【问题描述】:
我正在阅读有关 Swift (http://www.raywenderlich.com/74438/swift-tutorial-a-quick-start) 的教程,它预先设置为不显式设置类型,因为这样更具可读性。
我不太同意这一点,但这不是问题所在。我的问题是:就性能(编译器...)而言,明确设置类型是否更有效?
例如,这:var hello: Int = 56 是否比这更有效:var tutorialTeam = 56
【问题讨论】:
-
因为它是一个编译器检查,它根本不会影响你的应用程序的性能。
let a = 1和let a:Int = 1是完全等价的。如果您使用 alt+click 检查a,它会说它是Int类型。 -
编译器在将其设置为 Int 之前不会检查任何类型的 1 吗?
-
嗯?也许您不太了解静态类型推断的意义。当您忽略注释时,并不意味着编译器只是将变量视为必须解决的一些通用寄存器值。类型推断首先发生,然后变量在所有使用它的表达式中都被视为该类型。如果由于某种原因编译器无法推断出变量的类型,则会成为类型错误。运行时什么都不会发生。没有性能提升。
-
@CodaFi 第二个你添加的建议作为答案;很多读者都不清楚编译和运行时间的区别,你解释得很好。
-
文章在这一点上的建议似乎很糟糕。明确一个值的类型将使代码更易于阅读。
标签: performance types compiler-construction swift