DahuangPhoneiOSSwift → Swift的switch


  共有8067人关注过本帖树形打印复制链接

主题:Swift的switch

帅哥哟,离线,有人找我吗?
dahuangphone
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:407 积分:4533 威望:0 精华:0 注册:2012/9/29 7:54:10
Swift的switch  发帖心情 Post By:2014/10/11 20:53:30 [只看该作者]

Swiftswitch用户和其他语言有很大区别:


1. case值不局限于整数,可以是整数、浮点数、字符、字符串、元组等类型。

2.    没有break,当遇到条件匹配的case后,执行完语句就会自动退出switch。(如果加上一个fall through语句,在dang'qian当前case执行完后不跳出,继续执行)

3.    case 支持匹配范围的比较方式


let count1 = 3

let countedThings = "stars in the Milky Way"

var naturalCount: String

switch count1 {

case 0:

    naturalCount = "no"

case 1...3:     //大于等于1,小于等于3, 如果是1..<3, 意思是大于等于1,小于3,不包括3

    naturalCount = "a few"

case 4...9:

    naturalCount = "several"

case 10...99:

    naturalCount = "tens of"

case 100...999:

    naturalCount = "hundreds of"

case 1000...999_999:

    naturalCount = "thousands of"

default:

    naturalCount = "millions and millions of"

}

println("There are \(naturalCount) \(countedThings).")



元组在swift中用于比较:

var stu=(id:"1002",name:"wang",score1:99,score2:70)

var desc:String=""


switch stu{

    case(_,_,90...100,90...100),(_,_,40...70,50...60):

        desc="优秀"

    case(_,_,90..<100,90...100),(_,_,90..<100,60...100):   //这里的都好是“或”的关系

        desc="良好"

    default:

    desc="none"

}


swift中的值绑定和where语句的使用

var stu=(id:"1002",name:"wang",score1:99,score2:90)

var desc:String=""


switch stu{

    case(let id, let name ,90...100,90...100):    // 可以绑定多个值,在case范围里调用。但是这种方式必须只有一个case语句,如果是case(_,_,90..<100,90...100),(_,_,90..<100,60...100)无法绑定

        desc=id + name + "优秀"

case(let id, let name ,90..<100,90...100):

        desc=id + name + "良好"

case(let id,_,90..<100,90...100) where id.toInt()>0:   //可以像sql语句一样查询

        desc="where"

    default:

    desc="none"

}


 回到顶部