美文网首页Swift
★学习笔记:《iOS高级:Swift入门精讲②》第一节 Swif

★学习笔记:《iOS高级:Swift入门精讲②》第一节 Swif

作者: 麦穗0615 | 来源:发表于2019-07-22 17:30 被阅读0次

    前言:
    本篇为视频学习笔记

    Switch

     var number = 1
     switch number {
     case 1:
         print("number is 1")
         break
     case 2:
         print("number is 2")
         break
     default:
         print("number is other")
         break
     } // number is 1
    

    跟我们之前学的C语言是差不多的,注意点如下:

    • ★ case 、default后面不能写大括号{}

    • ★ break可以省略,对其贯穿性没有影响,默认可以不用写,默认是不可以贯穿的

    • ★ fallthrough (贯穿),贯穿的话可以加 fallthrough关键字



    • ★ switch必须要保证能处理所有情况如下代码就会报错


    原因:switch处理的情况不详细、不完全

    number是一个整数,放到switch中判断的是Int类型整数,整数的情况有很多种,可以认为无数多种,它可能是100,也可能是200,-100,-200,所以这个case要处理所有的话,case 1、case2、case3就要把所有整数可能取的值都要写出来,这个才代表处理了所有情况。所以,你没有处理所有情况,有遗漏,所以报错。所以,像这样的我们只能,如果你希望处理所有情况,由于它是一个整数,你只能加default。如下图:


    • ★ case 、default后面至少要有一条语句
    • ★ 如果不想做任何事,加个break即可

    • ★ 如果能保证已处理所有情况,也可以不必使用default
     enum Answer { case right, wrong}
     let answer = Answer.right
     switch answer {
     case Answer.right:
         print("right")
     case Answer.wrong:
         print("wrong")
     }
    

    // 由于编译器已经确定answer是Ansewer类型,因此可以省略Answer

     switch answer {
     case .right:
         print("right")
     case .wrong:
         print("wrong")
     }
    

    复合条件

    ★ switch也支持Character、String类型

     let string = "Jack"
     switch string {
     case "Jack":
         fallthrough
     case "Rose":
         print("Right person")
     default:
         break
     } // Right person   
    

    判断string字符串是否与Jack相等,那么怎么比较两个字符串相不相等呢?默认的比较,其实也就是比较里面的每一个字符是不是一样的。如果相等,意味着case是匹配的,再往下看是fallthrough,所以它会直接来到Rose这个位置打印 Right person。也就是说,我们的string无论是取值Jack还是Rose都会执行 print("Right person")这段代码。开发中,也会有这样的需求,希望两个case执行的事情是一样的。那么就可以这样做,加一个fallthrough。类似于C语言:

       switch age {
       case 1:
       case 2:
           print("1  2")
       default:
           print("other")
       }
    

    Swift中是不能这样写的,说了case后必须有一条语句



    你可以加一个fallthrough,他也是一个语句,如下:

    还可以下面这样写:

     let character: Character = "a"
     switch character {
     case "a","A":
         print("The letter A")
     default:
         print("Not the letter A")
     } // The letter A
    

    相关文章

      网友评论

        本文标题:★学习笔记:《iOS高级:Swift入门精讲②》第一节 Swif

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