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
子句。 我们可以将此子句应用于很多情况,例如switch
, if-let
, guard
, do-catch
和while
语句。
开关
让表情符号=😜
切换表情符号{
大小写为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
感谢收看! 雨燕快乐!