将标签的文本设置为 nil 或将其设置为“”有什么区别?
What is the difference between setting the text of a label to nil or setting it to ""?
我有一个 UILabel
,在某些情况下,我想将标签文本留空。
我想到的一种方式是:
myLabel.text = nil
另一个:
myLabel.text = ""
一种形式和另一种形式有什么区别?
哪个更好,为什么?
nil
表示没有值。 ""
表示它被设置为空字符串。显示的输出在两者之间看起来相同,但它们是具有两个不同含义的两个不同值。
归结为 Swift 中存在可选项的全部原因。有时您需要区分无值 (nil
) 和特定值(任何字符串,包括空字符串)。
您决定明确使用 nil
或 ""
的用例确实不多。更常见的是您有一些可选的 String
值,并且您希望将其设置为标签。由于 UILabel
的 text
属性 是可选的,因此您无需执行以下操作:
someLabel.text = someOptionalString ?? ""
你可以简单地做:
someLabel.text = someOptionalString
读取标签的值时,您可以确定标签是否曾经被设置过(nil
)或者它是否具有特定值。
我有一个 UILabel
,在某些情况下,我想将标签文本留空。
我想到的一种方式是:
myLabel.text = nil
另一个:
myLabel.text = ""
一种形式和另一种形式有什么区别? 哪个更好,为什么?
nil
表示没有值。 ""
表示它被设置为空字符串。显示的输出在两者之间看起来相同,但它们是具有两个不同含义的两个不同值。
归结为 Swift 中存在可选项的全部原因。有时您需要区分无值 (nil
) 和特定值(任何字符串,包括空字符串)。
您决定明确使用 nil
或 ""
的用例确实不多。更常见的是您有一些可选的 String
值,并且您希望将其设置为标签。由于 UILabel
的 text
属性 是可选的,因此您无需执行以下操作:
someLabel.text = someOptionalString ?? ""
你可以简单地做:
someLabel.text = someOptionalString
读取标签的值时,您可以确定标签是否曾经被设置过(nil
)或者它是否具有特定值。