标签:
// Playground - noun: a place where people can play
import Cocoa
var str = "Hello, playground"
var dic:Dictionary<Int,String>=[1:"Name",2:"Age"]
for (id,name) in dic{
println("id:\(id) name:\(name)")
}
// 泛型
//func isEquals<T>(a: T,b: T)->Bool{
// if(a == b ){
// return true
// }
// return false
//}
//var resultIsEquals = isEquals(1, 1)
//println(resultIsEquals)
// 将函数作为返回类型
func calculate(por:String)->(Int,Int)->Int{
func add(a:Int,b:Int)->Int{
return a + b
}
func sub(a:Int,b:Int)->Int{
return a-b
}
var result:(Int,Int)->Int
switch (por){
case "+":
result = add
case "-":
result = sub
default:
result=add
}
return result
}
// 闭包改造
func calulateFunc(pro:String)->(Int,Int)->Int{
var result:(Int,Int)->Int
switch (pro){
case "+" :
result = {(a:Int,b:Int)->Int in
return a + b
}
// 简写 方法
result = { a, b in return a + b}
// 简化 参数名称 $0 表示第一个参数,$1表示第二个参数,以此类推
result={$0 + $1}
default :
result = {(a:Int,b:Int)->Int in
return a - b
}
}
return result
}
// 调用方法
var f1=calulateFunc("+")
println("jin \(f1(10,6))")
/*
// 闭包函数 类似于 C# Lambda表达式
// 闭包函数 定义:字包含的匿名函数代码块,可以作为表达式、函数参数、函数返回值,闭包表达式 的运算结果 是一种函数类型
{(参数列表)-> 返回类型 in
语句组
}
*/
标签:
原文地址:http://www.cnblogs.com/pengzhaov/p/4379200.html