我刚刚读到该init方法不能用作值.含义:
var x = SomeClass.someClassFunction // ok
var y = SomeClass.init // error
Run Code Online (Sandbox Code Playgroud)
在语言参考上找到的示例
为什么会那样?这是一种强制语言水平的方法,因为有些诡计或可能因为它干扰了另一个特征而过于肮脏的技巧?
与Obj-C不同,它init可以多次调用函数而没有问题,在Swift中实际上没有调用方法init.
init只是一个关键字,意思是"以下是构造函数".MyClass()在创建新实例期间始终通过via调用构造函数.它永远不会作为一种方法单独调用myInstance.init().您无法获得对底层函数的引用,因为无法调用它.
这也与构造函数不能被继承的事实有关.码
var y = SomeClass.init
Run Code Online (Sandbox Code Playgroud)
也会破坏子类型,因为子类型不需要具有相同的初始化器.
| 归档时间: |
|
| 查看次数: |
383 次 |
| 最近记录: |