作为Swift中的运算符

时间:2015-08-13 02:47:17

标签: swift

as运营商期望什么作为右侧参数?

为什么不接受ClassName.selfvariableName.dynamicType

我的问题归结为.self.dynamicType真正的类名之间的区别?

1 个答案:

答案 0 :(得分:4)

SUM运算符期望 static Type作为右手参数。这里的单词 static 表示编译器在编译时已知的东西。

as.self都是表达式 s,因此.dynamicType运营商不期望这样做。表达式在运行时进行评估。如果是as.self,则会在评估后返回“类型”。

无论如何,.dynamicType运算符并不期望某些东西被评估为右手参数,而是“硬编码”类型。此功能允许Swift强制执行编译时检查。

希望这是有道理的。