//计算器: 回调 typealias count = ( Int , Int ) -> Int func add(a :Int ,b :Int) ->Int { return a+b } func delete(a :Int ,b :Int) ->Int { return a-b } func cheng(a :Int ,b :Int) ->Int { return a*b } func dev(a :Int ,b :Int) ->Int { return a/b } func abc (fun : count, x : Int , y: Int) -> Int { return fun(x,y) } //var f :count =add print(abc(add, x: 2, y: 3)) print(abc(delete, x: 2, y: 3)) print(abc(cheng, x: 2, y: 3)) print(abc(dev, x: 2, y: 3))
//MARK: //MARK: ////////8.函数/////// //c语言 函数类型 :1,无返回值,无参数 2,有返回值,无参数 3,无返回值,有参数,4,有返回值,有参数; //函数 是用来完成特定任务的代码块 ,你给代码块起名字,用来作为标示,当需要执行这个代码块的时候,就调用这个名字; //1.无返回值 ,无参数 func fun1() -> Void{ print("无返回值,无参数") } //2.有返回值,无参数 ; func fun2() -> String { return "lzy" } //3,无返回值,有参数 func fun3(a: Int , b : Int) -> Void { print(a+b) } //4 ,有返回值,有参数;用a: 调用 float 类型的函数 func fun4(a :Int, b:Float)-> Float{ return Float(a)+b } //调用函数 fun1() print( fun2() ) fun3(3, b: 5) //没有返回值 ; print( fun4(3, b: 5) ) //有返回值; // 5 .多个返回值 的函数 func fun5(a :Int ,b :Int ) -> (Int ,Float){ return (a , Float(b)) } print(fun5(3, b: 5)) let (first ,second) = fun5(3, b: 5) print(first) print(second) print(fun5(3, b: 5).0) print(fun5(3, b: 5).1) // func fun6(name name : String ,age : Int){ print("name is (name), age = (age)") } fun6(name: "lzy", age: 21) //交换两个数的值 func fun7(inout a :Int ,inout b :Int) -> Void{ a = a ^ b ; b = a ^ b ; a = a ^ b ; } var x : Int = 5 ; var y : Int = 10 ; fun7(&x, b: &y) print("x = (x) ,y = (y)") //函数指针 typealias swapFunc = (inout Int ,inout Int ) ->Void var p_fun :swapFunc = fun7 p_fun(&x, &y) print("x = (x) ,y = (y)") //函数指针 作为参数 ; func fun8(pfun : swapFunc , inout a : Int ,inout b : Int){ pfun(&a, &b) } fun8(p_fun, a: &x, b: &y) print("x = (x) ,y = (y)") // 函数指针作为 返回值 func fun9() -> swapFunc{ //在函数体 里面定义的 ; let p_func : swapFunc = fun7 return p_func } fun9()(&x ,&y) print("x = (x), y =(y)")
我认为未来苹果公司的主流语言是 swift,这估计到2020年啦.到时候我也有5年学习经验啦.