从类级别使用iflet快速检查nil

  • 本文关键字:nil iflet swift null
  • 更新时间 :
  • 英文 :


我一直在使用嵌套的iflet(s(来检查nils。例如,一个包含名称和年龄的类

class Person {
var name: String?
var age: Int?
}
if let p = Person() as? Person {
if let name = p.name {
}
if let age = p.age {
}
}

当我不确定变量是否为空/null时,是否有必要在所有和每次上使用if let?只是想确定我做得对不对。

只有在需要检查nil并使用展开的值时,才需要if-let。否则,您可以使用!===运算符简单地检查nil

此外,不需要使用as? Person显式地对pPerson进行类型转换,因为类型已经可以推断了。

let p = Person()
if p.name != nil {
}
if p.age != nil {
}

您不需要检查任何

p = Person()

创建一个没有初始值的新Person对象意味着所有属性都为nil,因此不需要进行以下检查,我们已经知道它们为nil

if let name = p.name {
if let age = p.age {

我建议你添加一个带参数的构造函数,这样你就可以直接设置属性

要么有强制值,这样你就不必在之后检查零

init(name: String, age: Int) {
self.name = name
self.age = age
}

或具有可选值

init(name: String?, age: Int?) {
self.name = name
self.age = age
}

但是你需要检查

var name: String?
var age: Int?
//...other code
let p = Person(name: name, age: age)
if let personName = p.name {
}
if let personAge = p.age {
}

相关内容

  • 没有找到相关文章