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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |