美文网首页
浅谈Swift中for case的使用!

浅谈Swift中for case的使用!

作者: LMSwift | 来源:发表于2016-05-20 22:39 被阅读853次

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

因为自己使用过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的时候,输出内容变成了:

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

相关文章

  • 浅谈Swift中for case的使用!

    小白第一次写文章,望大神们多指点指点! 因为自己使用过JAVA的反射机制,因此在使用swift的时候也想使用swi...

  • Swift实现枚举Enum复选

    使用 在Swift中,OptionSet复选采用类似数组的方式[.case1, .case2, .case3] 检...

  • 获取当前的iOS设备型号

    Tips: 1.OC中switch-case 无法匹配字符串,故使用if,swift 中建议使用switch-ca...

  • 浅谈Swift中的限定扩展

    浅谈Swift中的限定扩展

  • 控制语句

    if语句 switch swift不需要加break跳出 区间匹配 元祖匹配 case中还可以使用where关键字...

  • Optional Binding for Enum

    在Swift中,如果用到optional binding时,对应的数据类型是一个enum是,需要使用case,否则...

  • Swift枚举

    Swift中,枚举的创建方式如下; /*写法1*/ enum LTSeasonOne{ case FIRST ...

  • Swift 中的 switch case

    switch 语句会将一个值与多个可能的模式匹配,然后基于第一个成功匹配的模式来执行合适的代码块 switch 语...

  • fallthrough语法

    swift 中 switch case 后默认语句后面都会break, 所以当满足某个case之后仍旧想使它匹配下...

  • swift-fallthough

    swift中switch-case case后默认加入了break,如果要继续执行下面的代码就需要加入fallt...

网友评论

      本文标题:浅谈Swift中for case的使用!

      本文链接:https://www.haomeiwen.com/subject/mwinrttx.html