我已经做了几个月的
Swift编程了,我一直很好奇这个……
告诉Swift编译器声明中对象的类型是否有优势?
I.e.let图像:UIImage = UIImage()
与不告诉编译器并让它在运行时推断类型相比.我让image = UIImage()
我认为告诉编译器对象类型而不是推断它的类型会更有效.我知道这个问题也适用于Objective-C语法,所以我会在标签中添加它.
解决方法
两者之间的运行时效率差异为零.在编译期间,Swift会推断出类型并为您编写代码.但一旦编译,这两个陈述是相同的.
这纯粹是一个可读性问题,偶尔也是编译器效率问题.
可读性因为在语句中让图像:UIImage = UIImage(),UIImage的双重外观只是杂乱无章.在更复杂的类型的情况下,它非常重要 – 没有人想要写let键:LazyForwardCollection< MapCollectionView< Dictionary< String,Int>,String>> = dict.keys,当他们可以写let keys = dict.keys.
编译器的效率,因为偶尔你会发现一个特别模糊的类型(文字的文字因此而臭名昭着)需要解决大量的重载,如果在左侧明确命名类型,可以更快地编译.但这只是一个问题,它编译速度有多快,而不是编译后运行速度有多快.