零销售员

为什么最简单的概念有时会具有最复杂的名称?

听起来有些吓人,但是nil-coalescing运算符实际上非常简单!

假设您有一个可选的name -我们称其name

  var名称:字符串? 

假设您要在标签中显示名称。 如果名称等于nil,则希望标签显示默认值“匿名”。

解决方案1 :首先检查name包含值。 如果是这样,则显示该值。 否则,显示“匿名”。 就像是:

 如果名称!= nil { 
//我们可以“强制展开”名称,因为我们知道它包含一个值:
label.text =名称!
}其他{
label.text =“匿名”
}

解决方案2:通过将name可选变量绑定到保证不包含nil的新变量, 可选绑定将使它更漂亮,例如:

 如果让名称=名称{ 
//使用可选绑定,无需强制解包
label.text =名称
}其他{
label.text =“匿名”
}

解决方案3:三元条件运算符 (一个简单的概念,还有一个令人生畏的名字!)是在if语句中的一种捷径。

如果if语句的基本语法是:

 如果条件{ 
一种
}其他{
b
}

然后,三元条件运算符将此语法简化为:

 条件?  a:b 

我们可以应用此公式将解决方案1简化为:

  label.text =名称!=无 名称!  :“匿名者” 

现在更好了,我们的五行代码减少到只有一行! 如果名称具有值,则将其强制展开,否则将使用默认值“匿名”。

不过,它看起来仍然有些混乱,并且可能需要一些时间来了解正在发生的事情。 一个更简单的解决方案是使用nil-coalescing运算符

解决方案4: nil-coalescing运算符使您可以指定一个可选值和一个默认值,仅此而已!

语法非常简单,请检查一下:

 可选的 ?? 默认值 

??的左侧 是可选的,在右边是默认值。 简单! 让我们将语法应用于示例:

  label.text =名称??  “匿名” 

现在很优雅!

Interesting Posts