我是Swift的新手,我希望能够编写一个属性setter,它在初始化时也将用作构造函数:
struct Person {
private var name: String {
get {
return self.name;
}
set {
self.name = name;
}
}
}
var Murad = Person(name: "Murad");
当我运行此代码错误时返回此错误
传递给不带参数的调用的参数
答案 0 :(得分:2)
发生错误是因为属性是计算属性而且它是私有的(只能在类中更改),所以对于编译器,没有(成员)初始化器,只有默认的初始化器{{1}可以使用无参数。
您很幸运得到此错误消息,否则当您运行代码时,您将遇到无限循环(导致溢出崩溃)。
如果你想要一个常量,只需将结构成员声明为Person()
let
答案 1 :(得分:-1)
struct Person {
let name: String
}
let person = Person(name: "Murad")
print(person)