我在Swift上阅读book,它说:
在可能的情况下,更喜欢使用初始化程序强制转换或强烈输入文字。初始化器添加额外的函数调用;演员表是在编译时处理的。使用文字可以产生更有效的代码:
let t: UInt8 = 0 // yes
0 as UInt8 // yes
UInt8(0) // no
对我来说,第一个选择是纯粹的和好的。
第二个选项首先初始化0 然后执行额外的投射操作。
第3个选项只进行初始化,这一切都很好。
所以我不明白为什么第二个选项不推荐第三个选项...
修改
由于Int
具有优先权,这种情况也会有相同的答案吗?
let t: Int = 0
0 as Int
Int(0)
答案 0 :(得分:2)
as UInt8
没有执行任何“额外投射操作”。
它只是一个关于如何解释整数文字的类型注释。