美文网首页iOS Swift 学习手册 iOS Developer首页投稿(暂停使用,暂停投稿)
一个关键字就让你震撼Swift的强大且让你即刻喜欢上它

一个关键字就让你震撼Swift的强大且让你即刻喜欢上它

作者: JanzenChen | 来源:发表于2016-07-29 01:50 被阅读490次

一个关键字,能做你50行代码也做不到的事情;
一个关键字,能让你震撼它的强大;
一个关键字,能让你即可喜欢上他.
不信?你拉到最后看一眼就行了!

这都行.jpg

不要不相信,这就带你去了解一个关键字,让你相信世界上真有奇迹!
***它仅仅是一个关键字:
--------->❀ switch ❀<----------


我们知道的switch是下面这样的:

  • 你能回答我为什么 括号里 只能是返回整型的表达式吗?
  • 你能回答我为什么 case 后只能是整数吗?
    • 可不可以不要那么多条条框框?
    • 可不可以不要那么功能单一?
    • 可不可以不写break,死命重复有意义吗?
    • 忘记写break可不可以不穿透?
 switch (返回整型的表达式) {
    case 整数:
        需要执行的代码A;
        break;
    case 整数:
         需要执行的代码B;
         break;
    ...
    default:
        需要执行的其它代码;
        break;
 }

***让 Swift 来回答你 : 如你所愿! ***


来看看Swift里的switch的优雅表演

你有的我一样有
  • 单值判断
//单值判断
let sex = 1
switch sex {
case 0:
    print("男")
case 1:
    print("女")
default:
    print("其他")
}

我有的你一样都没有
  • 多值(范围)判断
//多值判断
switch sex {
case 0...1:
    print("正常人")
default:
    print("其他")
}
  • 浮点型判断:为什么只能判断整形值,你out了
//浮点型判断
let pi = 3.14
switch pi {
case 3.14:
    print("π")
default:
    print("不是圆周率")
}
  • 字符判断 :直接点就是好
//字符判断
let m = 92.3
let n :Double = 0
var result :Double = 0
let option = "+"

switch option {
case "+":
    result = m + n
case "-":
    result = m - n
case "*":
    result = m * n
case "/":
    guard n > 0 else {
        result = m
        break
    }
    result = m / n
default:
    result = 0
}
print(result)
  • 范围匹配
//范围匹配
switch count {
case 0..<10:
    print("1位数")
case 10..<100:
    print("2位数")
case 100..<1000:
    print("3位数")
case 1000..<10000:
    print("4位数")
default:
    print("5位数")
}
  • 元祖匹配
//元组匹配
let point = (1,0)
switch point {
case (0,0):
    print("在原点")
case (0..<10,_) :
    print("在y轴右边")
case (_,0..<10) :
    print("在x轴上边")
default:
    print("在不知名的远方")
}
  • 值绑定 :还有谁能办到
//值绑定
let point2 = (0,-10)
switch point2 {
case (let x, 10)://当y=10时输出x的值
    print(x)
case (0 , let y) where y < 0://当x = 0 且 y < 0 时输出的值
    print(y)
default:
    print("其他")
}
  • 多值匹配 :这才是最牛逼的
//多值匹配
let currentCharacter: Character = "e"
switch currentCharacter {
case "a", "e", "i", "o", "u":
    print("\(currentCharacter) is a vowel")
case "b", "c", "d", "f", "g", "h", "j", "k", "l", "m",
     "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z":
    print("\(currentCharacter) is a consonant")
default:
    print("\(currentCharacter) is not a vowel or a consonant")
}

最后问一句:你震撼了吗?你喜欢上Swift了吗?
参考:http://www.cocoachina.com/ios/20140611/8769.html

相关文章

  • 一个关键字就让你震撼Swift的强大且让你即刻喜欢上它

    一个关键字,能做你50行代码也做不到的事情;一个关键字,能让你震撼它的强大;一个关键字,能让你即可喜欢上他.不信?...

  • Swift Tips - Defer关键字

    前面有说到,在 swift 2.0 引入了 guard 关键字,可以让代码编写更流畅。它的优雅简洁而功能强大确实给...

  • 遇见最美的你

    爱情是一个调皮的小精灵,在不经意间就让我遇见了它。 我散漫且丧,不知道你怎么就喜欢上我这样的人。 曾经一度以为只有...

  • 435,Swift - mutating关键字的使用(面试点:在

    Swift中mutating关键字 Swift中protocol的功能比OC中强大很多,不仅能再class中实现,...

  • swift 4.0 泛型

    泛型 Swift中mutating关键字 Swift中protocol的功能比OC中强大很多,不仅能再class中...

  • 火山

    你的震撼 让我喜欢 你的苍凉 让我喜欢 你的沉重 让我喜欢 你的呐喊 让我喜欢 你的呼啸 让我喜欢 你是一部无字的...

  • Swift-泛型笔记

    Swift 泛型 Swift 提供了泛型让你写出灵活且可重用的函数和类型。 Swift 标准库是通过泛型代码构建出...

  • 泛型

    Swift 提供了泛型让你写出灵活且可重用的函数和类型。Swift 标准库是通过泛型代码构建出来的。Swift 的...

  • Swift 泛型

    Swift 提供了泛型让你写出灵活且可重用的函数和类型。Swift 标准库是通过泛型代码构建出来的。Swift 的...

  • Swift 泛型

    Swift 提供了泛型让你写出灵活且可重用的函数和类型。Swift 标准库是通过泛型代码构建出来的。Swift 的...

网友评论

  • ufogxl:对于我这种还没毕业的小弟,表示公司根本就不打算用
    JanzenChen:@ufogxl HTML5 确实很火,一套满足所有。Swift集百家之长,好多语言都有影子在其中。
    ufogxl:@熙玥 我们公司连ios 安卓都抛弃了,直接用ionic做得:joy:.不过swift真的有些javascript的影子.
    JanzenChen:@ufogxl 不知道你说的是学校毕业还是技术毕业,学校毕业,那是时间问题,技术毕业,时间+坚持,加油!
  • ad18bf45e93e:很走心!

本文标题:一个关键字就让你震撼Swift的强大且让你即刻喜欢上它

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