Swift之where一般使用场景

使用where语句之前必须在where之前有一个主语变量名

  • 协议约束
//基类A继承了SomeProtocol协议才能添加扩展
extension SomeProtocol where Self: A {
    func showParamA() {
        print(self.a)
    }
}
  • for...in...遍历
let arr = [1, 2, 4, 5, 6]
    
for (index, value) in arr.enumerated() where value > 4 {
    print(index, value)
}
  • case 语句,相当于if判断
let arr = [1, 2, 4, 5, 6]
    
for (index, value) in arr.enumerated() where value > 4 {
   
    switch value {
    case let a where a < 6:
        print(index)
    default:
        print(value)
    }
}

  • if let 和 guard中,在swift4.0版本以后,使用逗号代替where
let str : String? = "hello"
    
if let value  = str, value.count == 5 {
    print(value)
}
    
guard let value  = str, value.count == 5  else { return }
print(value)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 标题倒是随意地拟了出来,内容却没有太大的能力去做到丰富,详实。 今天是朋友聚会的日子,大家在吃饱喝足之后就开启了一...
    羊毛卷的布谷阅读 252评论 0 1
  • 有的时候会不经意的想起一些事,一些人,那一瞬间仿佛就在昨天,那个场景、那些美丽、让暖暖的笑容爬上脸颊。 ...
    妥Anna阅读 133评论 0 0
  • 你有什么习惯呢?我喜欢吃酸的,喜欢穿运动鞋,有拖延症......这些是自己很明显的感觉到的习惯。 那么我们感觉不到...
    zhuzhu理财有道阅读 665评论 5 5
  • 今天上午,我们的课题是,夫子,我想对您说… 一周的时光接近尾声,老师让我们把这一周对孔夫子的认识写出...
    e1db6b46580b阅读 306评论 0 0