如何从我的 class 创建一个可选值

How can I create a optional value from a my class

我创建了一个 class User,我想从中创建一个可选的,然后编译器引发错误

class User {
    var firstName: String = ""
    var lastName: String = ""
}

var Tom = User?(firstName: "Tom", lastName: "Soya")

错误: cannot invoke initializer for type 'User?' with an argument list of type '(firstName: String, lastName: String)'

问题:有什么问题吗?在创建可选值之前,我是否需要在 class 中放入更多内容?如果有,那是什么?

谢谢

问题是您的用户 class 没有初始值设定项。因此,只有 一种 方式来初始化它:即说 User()。因此,如果您要这样定义用户:

class User {
    var firstName: String = ""
    var lastName: String = ""
}

那么你能做的最好的就是:

var tom : User? = User()
tom?.firstName = "Tom"
tom?.lastName = "Soya"

@matt 的回答是正确的,但这里有另一种方式,我认为更清楚:

var tom = Optional(User())

参见Optional.init(_:)