这个对我来说完全没有意义。我有一个包含几个字符串的结构:
public struct Organization {
let id: String
let name: String
let legacyID: String?
let rID: String?
public init(id: String, name: String, legacyID: String?, rID: String?) {
self.id = id
self.name = name
self.legacyID = legacyID
self.rID = rID
}
}
注意 legacyID
和 rID
是可选的。但是,如果我尝试将它们中的任何一个设置为 nil
或 .None
,它们将被设置为 ""
(空字符串)。例如:
let org = Organization(id: company.companyID, name: company.name, legacyID: company.context, rID: nil)
然而,当我尝试访问 rID
时,它显示为 ""
而不是 nil
。我什至尝试在 init
中直接设置 nil
,但它仍然设置为 ""
。这搞乱了我的平等检查。有人知道这是怎么回事吗?
注意:这是 Swift 1.2
最佳答案
你得到“”作为输出,因为你的数据类型是字符串。因此,如果任何 String 变量为空或 nil,它总是显示“”。您不能使用 String 类型将 nil 作为输出。即使您直接分配 nil 也不会发生相同的输出。
关于string - Swift nil 可选字符串 = 空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31837109/