Swift中的“ Where”和“ ??”

在Swift中,我看到很多情况下关键字where?? 经常使用,但我对如何在应用程序中实现一无所知。 当我不了解主题时,我通常要做的第一件事是查阅Apple文档,并查看是否有任何有关如何正确使用这些关键字的线索。 不幸的是,Apple文档并未涵盖这些主题的全部内容,因此我不得不进行一些挖掘。 对于仍然感到困惑的人,我在这里为您提供帮助!

哪里

where本质where是一个条件语句或布尔条件,就像if-else语句一样,如果大小写匹配,则如果条件成立,它将执行某些操作。 是的,就是这么简单! 看一下这个例子。

for循环

 让数字= [10,20,30,40] 
 对于数字,其中num> 20 { 
打印(数字)
}
// 30,40

在这里,我们在for循环中使用了where子句来过滤所有大于20的数字。我们不限于在for-loop使用where子句。 我们可以将此子句应用于很多情况,例如switchif-letguarddo-catchwhile语句。

开关

 让表情符号=😜 
 切换表情符号{ 
 大小写为sillyEmoji,其中sillyEmoji ==😜: 
 案例让sadEmoji在其中sadEmoji ==☹️: 
 默认: 
打破
}

 变数= 1 
 而数字> 0,而数字<20 { 
数字=数字+ 1
打印(数量)
}
  //打印1-19 

请务必注意,在Swift 3中, where替换为。 当您在while循环中声明两个条件时,逗号就足够了。

如果让

 让dog:String吗?  =“🐕” 
 如果让thisDog = dog,则thisDog ==“🐕” { 
 打印(“是🐕”) 
  } 
 其他{ 
  print(“那是什么?”) 
  } 
  //打印-(“是🐕”) 

同样, where已被替换为。

守护

 让dog:String吗?  =“🐕” 

guard let thisDog = dog, dog != "


guard let thisDog = dog, dog != "
🐕 " else {
" else {
print(“那是什么?”)
返回
}
打印(“是🐕”)
  //打印-(“是🐕”) 

??

双问号是零销售商。 简而言之,这只是说!= nil的简写。 首先,它检查返回值是否为nil,如果确实为nil,则显示左值,如果返回值为nil,则显示右值。

 没有??: 
 a != nil ? a! : b 
 与??: 
 一种 ??  b 

感谢收看! 雨燕快乐!