我们说我有一个班级:
class Fruit {
var fruitName: String
init(getFruit name: String) {
fruitName = name
}
}
使用构造函数和使用.init之间有什么区别吗?
var apple = Fruit(getFruit: "apple")
var orange = Fruit.init(getFruit: "orange")
如果问题措辞严厉或以前被问过,我道歉。
答案 0 :(得分:5)
来自Initializer Expression section of the language guide:
如果按名称指定类型,则可以在不使用初始化表达式的情况下访问类型的初始值设定项。在所有其他情况下,您必须使用初始化表达式。
让s1 = SomeType.init(数据:3)//有效
令s2 = SomeType(数据:1)//也有效让s3 = type(of:someValue).init(data:7)//有效
let s4 = type(of:someValue)(data:5)//错误
直接使用类型上的显式.init
初始化与没有它的情况没有什么不同;它们与Swift的观点相同,因此大多数人更喜欢省略.init
的简洁。
答案 1 :(得分:1)
据我所知,绝对没有区别。
通常在Swift中调用构造函数而不使用.init
这是“快速的”##简写。