如何从我的 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())
我创建了一个 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())