刚刚在这里学习,但有一个更好的方法来编写下面的代码,因为在这个课程中我有102个数据点,我真的不希望每个都是3个班轮。我在谷歌发现的例子中使用了let或var,而我无法找到任何自我。
if snap["id"] !== nil {
self.id = snap["id"] as! Int
}
答案 0 :(得分:0)
您可以检查值是否为零:
if let id = snap["id"] as? Int {
// if this gets executed, id is not nil
}
甚至喜欢这个
guard let id = snap["id"] as? Int else {
// in case this executes, id is nil
return
}
// From here on, you can use id constant, it's value is not nil
如果您使用的是第二个代码,如果snap [“id”]为nil,则代码将返回,并且返回后的任何内容都不会被执行。这取决于使用哪种代码的情况,两种方式都是可能的。
修改强> 如果你仍然需要使用变量,你可以为它分配一些默认值,如果它是nil:
let id = snap["id"] as? Int ?? 0 // in this case, if "id" is nil, we assign a value of 0
答案 1 :(得分:0)
如果您想保留原始值,如果字典中的值为nil
,您可以简单地:
self.id = (snap["id"] as? Int) ?? self.id
或
(dict["id"] as? Int).map { self.id = $0 }