从同一个类使用类var时省略类名

时间:2017-10-25 23:16:24

标签: swift

当你做出这样的声明时,差异是什么:

    self.view.backgroundColor = UIColor.white

和此:

    self.view.backgroundColor = .white

view.backgroundColor调用类var .white或swift是否由于变量类型而忽略了UIColor?这些类型的陈述的惯例是什么?

2 个答案:

答案 0 :(得分:1)

Swift可以从上下文中推断出类型。在该语句中,编译器知道self.view.backgroundColorUIColor。当您调用类方法或属性.white时,它会自动调用UIColor.white

惯例是使用第二种用法。它的篇幅更短,描述性更强,几乎每个人都能理解。

答案 1 :(得分:1)

只有可读性的差异。编译器将检查backgroundColor所属的类型,并确定其为UIColor,然后使用类型推断来获取UIColor.white并分配它。

就标准惯例而言,许多人使用较短类型的传染,但很难确定存在哪些其他可能的值,尤其是在使用自定义类型时。我使用完全限定的变量,所以我的代码看起来像:

view.backgroundColor = UIColor.white

我相信它更具可读性。