7.4 Swift原始值fromRaw方法

enum Method2:String {

case Add = "addStr"

case Sub = "subStr"

case Mul = "mulStr"

case Div = "divStr"

}

@H_403_60@ 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 正式开源!Swift 团队很高兴宣布 Swift 开始开源新篇章。自从苹果发布 Swfit 编程语言,就成为了...
快,快,快!动动您的小手,分享给更多朋友! 苹果去年推出了全新的编程语言Swift,试图让iOS开发更简单...
开发者(KaiFaX) 面向开发者、程序员的专业平台! 和今年年初承诺的一样,苹果贴出了Swift语言的源码,...
本文由@Chun发表于Chun Tips :http://chun.tips/blog/2014/12/11/shi-yong-swift-gou-jian-zi-ding-yi...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...