假设我有个课:
class Fruit {
var fruitName: String
init(getFruit name: String) {
fruitName = name
}
}
使用构造函数和使用.init有什么区别吗?
var apple = Fruit(getFruit: "apple")
var orange = Fruit.init(getFruit: "orange")
我看不出操场上有什么不同。
如果这个问题措辞不当,或者以前有人问过,我很抱歉。
发布于 2018-03-09 17:40:01
如果按名称指定类型,则无需使用初始化程序表达式即可访问该类型的初始化程序。在所有其他情况下,必须使用初始化器表达式。 设s1 =SomeType.init(数据: 3) //有效 设s2 =SomeType(数据: 1) //也有效 设s3 = type(of: someValue).init(数据: 7) //有效 设s4 = type(of: someValue)(数据: 5) //错误
直接在类型上使用显式.init
初始化与不使用它没有什么不同;从Swift的角度来看,它们是等价的,所以大多数人更喜欢省略.init
的简洁性。
发布于 2018-03-09 17:27:04
据我所知,这绝对没有区别。
通常在Swift中,不使用.init
调用构造函数是惯例--这是“更快”的速记。
https://stackoverflow.com/questions/49204423
复制相似问题