if let phone = participant.phone {
participantObject["phone"] = phone
} else { print("Did not add phone") }
我需要打开"字符串?"并且只有在可选项不是nil时才进行赋值
答案 0 :(得分:3)
由于为Swift字典分配nil
值会删除密钥,因此您可以轻松使用此语法:
participantObject["phone"] = participant.phone
除非您想保留现有值。然后没有比你更好的语法。
但是,如果您想在phone
为nil
时分配备用值,请使用nil coalescing
运算符。
participantObject["phone"] = participant.phone ?? "n/a"
答案 1 :(得分:2)
你可以简单地使用
participatnObject["phone"] = participant.phone
因为如果"phone"
不是participant.phone
,此代码只会设置密钥nil
的值。唯一的区别是,此代码会移除"phone"
密钥的先前值(如果它在那里),而代码不会发生。
如果您还需要在未完成任务的情况下打印消息,那么您的代码非常理想。这稍微短了一点:
participatnObject["phone"] = participant.phone
if participant.phone == nil { print("Did not add phone") }