7.4 Swift原始值fromRaw方法

前端之家收集整理的这篇文章主要介绍了7.4 Swift原始值fromRaw方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

enum Method2:String {

case Add = "addStr"

case Sub = "subStr"

case Mul = "mulStr"

case Div = "divStr"

}

print("--------------->")

// 老版本中是

// Method2.Div.toRaw()

print(Method2.Div.rawValue)


// 这里是可选类型

// let op1 = Method2.RawValue("Add")

// print(op1)

// let op2 = Method2.RawValue("add")

// print(op2!)


// Method2.fromRaw("add")

let m1 = Method2(rawValue: "add")

print(m1)


let m2 = Method2(rawValue: "addStr")

print("--------->")

print(m2)

print(m2!)


func chooseMethod(op: String) -> (Double,Double)-> Double {

// 由于返回是可选类型,所以有可能为nil,最好使用可选绑定

if let rawop = Method2(rawValue: op) {

switch rawop {

case .Add:

func add(a:Double,b:Double) -> Double {

return a + b

}

return add

case .Sub:

// 返回一个闭包

return { (a: Double,b: Double) -> Double in return a - b }

case .Mul:

// 返回一个闭包,省略闭包类型

return { return $0 * $1 }

case .Div:

// 返回一个闭包,return也省略掉

return { $0 / $1 }

default:

return { $0 + $1 }

}

}

return { $0 + $1 }

}

let val = chooseMethod(op: "addStr")(30,7)

print("--------->")

print(val)

猜你在找的Swift相关文章