浅谈Swift中for case的使用!

小白第一次写文章,望大神们多指点指点!

因为自己使用过JAVA的反射机制,因此在使用swift的时候也想使用swift的反射机制时,在一个大神的文章里面意外的碰到了swift的一种特殊的写法,因为一直没有碰到过swift的这种写法,一直不理解这种写法的意思是什么。

let user = Users(userInfo:userInfo!)

let mirror = Mirror(reflecting: user)

let children = mirror.children

for case let (label?, value) in children {

}

然后自己百度了一下,或许没明白什么意思,没找到关键字,也没百度到,然后顺带就google了一下,第一个就跑到apple官方的文档里面去了,也就是在这里面我找到了自己想要的答案。


在这段内容里面我找到了自己想知道的内容。

当我使用for case in去循环children的时候,循环语句就会去匹配我们所设置的条件,label?的时候,循环就只会匹配label不为空的值。当label不设置可选值的时候,会循环出所有的内容。或许我语言组织的有点不好理解,当你看了我写的这个小的测试demo就能明白了。

let ints: [Int?] = [nil,nil,1,2,nil,3]

for case let number? in ints {

print(number)

}

这个时候输出的内容为:1、2、3


当我把number?改为number的时候,输出内容变成了:


到这里我想大家就很明白这个语法的使用了。

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

推荐阅读更多精彩内容