您的位置:首页 > 移动开发 > Swift

swift2.0 语法新特性(1)

2015-11-05 11:20 387 查看
控制流语句

1 repeat

repeat{

}while(     )

while()里是个Bool值,当true时重复执行repeat{.....}语句


 2 guard

guard 条件 else{

    return

}

当条件成立时执行后面,否则执行else里的语句,类似于if {}else {},但只有一个代码块

写了个实例

import Foundation

struct Gas {

var name:String = "35号"

var gaslitre:Int? = 100

}

//模拟行车

struct Car{

var distance  = 1000 //距目的地距

var gas:Gas? = Gas(name: "35", gaslitre: 100)

var state:Bool{return gas!.gaslitre > 0 && distance > 0} //行车状态 true行驶 false油量为零停止行驶

//行驶

mutating func drive(){

guard gas!.gaslitre > 0 && distance > 0 else{

print("停车")

return

}

distance -= 9

gas!.gaslitre! -= 1

//当油量为零时将油量赋值为空

if gas?.gaslitre == 0{

gas?.gaslitre = nil

}

print("距离目的地\(distance)~~~~剩余油量\(gas!.gaslitre)")

}

}

var car = Car()

//控制流 repeat “当行车状态为true的时候不断行驶”

repeat{

car.drive()

}while(car.state)

struct GasStation {

func refuel(let car:Car){

/*

guard 与 if 对比

把下面语句改为if:

if let gasname = car.gas?.name,let gaslitre = car.gas?.gaslitre{

print("正在加\(gasname)号汽油--\(gaslitre)升")

}else{

print("请提供加油信息")

}

区别:

guard更能准确表达信息

gasname,gaslitre在guard验证后可以在整个方法内使用,而if验证后只能在if语句块中使用

*/

guard let gasname = car.gas?.name else{

print("请问你需要的汽油型号?")

return

}

guard let gaslitre = car.gas?.gaslitre else{

print("请问需要多少升汽油")

return

}

print("正在加\(gasname)号汽油--\(gaslitre)升")

}

}

let gasstation = GasStation()

gasstation.refuel(car)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: