swift中的where 关键字和一些奇怪的东东

在Swift语法里where关键字的作用跟SQL的where一样, 即附加条件判断。


1、 在集合遍历时使用where, 条件为真时执行代码块, 为假时不执行代码块。

case let x where x > 3:


2、for value in array where value > 2


变量定义中直接_,其实也是定义一个变量,只是后面不想要,偷懒的一种写法



使用guard语句将上述的3个问题一并解决:

  1. 是对你所期望的条件做检查,而非不符合你期望的。又是和assert很相似。如果条件不符合,guard的else语句就运行,从而退出这个函数。
  2. 如果通过了条件判断,可选类型的变量在guard语句被调用的范围内会被自动的拆包 - 这个例子中该范围是fooGuard函数内部。这是一个很重要,却有点奇怪的特性,但让guard语句十分实用。
  3. 对你所不期望的情况早做检查,使得你写的函数更易读,更易维护。

func fooGuard(x: Int?)
     guard let x = x where x >  0   else  {
               // 变量不符合条件判断时,执行下面代码
               return
     }
     // 使用xx.description 
}


func fooNonOptionalGood(x: Int) {

  guard x > 0 else {

     return

  }

  //使用x

}

猜你喜欢

转载自blog.csdn.net/qq_15156403/article/details/80176051
今日推荐