我正在阅读 book在 Swift 上,它说:
在可能的情况下,更喜欢强制转换或强类型化文字而不是使用初始化程序。初始化器添加了一个额外的函数调用;强制转换在编译时处理。使用文字会产生更高效的代码:
let t: UInt8 = 0 // yes
0 as UInt8 // yes
UInt8(0) // no
对我来说,第一个选择是纯粹而好的。
第二个选项首先初始化 0 然后做一个额外的转换操作。
第三个选项只做初始化,这一切都很好。
所以我不明白为什么不推荐第三个选项而第二个选项是......
编辑:
既然 Int
有优先级,这个场景是否也有相同的答案?
let t: Int = 0
0 as Int
Int(0)
最佳答案
as UInt8
不执行任何“额外的转换操作”。
它只是关于如何解释整数文字的类型注释。
关于swift - 为什么字面值比初始值设定项产生更高效的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42705484/