/*-------我是帅气的分割线--------*/ //可变参数 func caculateMean(numbers: Int ...) -> Double{ var sum = 0 for number in numbers{ sum += number } return Double(sum) / Double(numbers.count) } let meau = caculateMean(1,2,3,4,5,6) println("meau = \(meau)") //交换 加inout改变常量 func swap(inout a: Int ,inout b:Int){ var temp = a a = b b = temp } var swapedValueA = 3 var swapedValueB = 5 swap(&swapedValueA,&swapedValueB) println("A = \(swapedValueA) B = \(swapedValueB)") /*-------我是帅气的分割线--------*/ //运算符重载 let a = 3 let b = 3.5 //let sum = a + b //重载加号 @infix func + (leftValue: Int ,rightValue: Double) -> Double{ return Double(leftValue) + rightValue } let sum = a + b /*---------------我是帅气的分割线--------*/ //闭包的使用 --- 类似block func sortArray(array:String[]) -> String[]{ // let used: (String,String) -> Bool = {(stringA:String,stringB:String) -> Bool in // return stringA > stringB // } //形式1 // let sortedArray = sort(array,{(stringA:String,stringB:String) -> Bool in // return stringA > stringB}) //如果只返回一句,可以将"return"关键字省略 //形式2 // let sortedArray = sort(array,{$0 > $1}) //利用元组的属性来获取 //形式3 // let sortedArray = sort(array, >) //运算符重载 //形式4 let sortedArray = sort(array){ (stringA: String,stringB:String) -> Bool in return stringA > stringB } return sortedArray }