Swift的函数与函数指针、闭包Closure等相关内容介绍

<span style="font-size:24px;">//函数//demo1 无参数类型func testConcat(){println("测试函数");}testConcat()//调用demo1//demo2 多参数,一个返回值/*函数以func开头,表示一个函数v1表示参数,String参数类型->返回值类型String*/func testConcats(v1:String,v2:String) ->String{return "\(v1) and \(v2)";}//函数参数含有标签func testConcatAndMark(v1:String,AndValue v2:String,AndNumber v3:String)->String{return "\(v1),\(v2),\(v3)"}//测试函数func testFunction(){let v = testConcats("hello", "world");println(v);let v2 = testConcatAndMark("david", AndValue: "dream", AndNumber: "good");println(v2)}testFunction();//函数返回多值func getInfo()->(String,String,Int){return ("david","dream",100);}let (v1,v2,v3)=getInfo();println("v1=\(v1),v2=\(v2),v3=\(v3)");//函数嵌套函数func testFunctionInFunction()->Int{var y = 10;func add(){y+=5;}add();return y;}let v6 = testFunctionInFunction();//*******************************//函数指针 *****五星难度/*返回值是(Int->Int),是个函数地址第一个int是参数类型,第二个int是返回值*/func getFuncPointer()->(Int->Int) {func addOne(num:Int)->Int{return num+1;}return addOne;//返回一个函数 地址}var funPointer = getFuncPointer();//funPointer是个函数指针var v7 = funPointer(100);//函数的形式调用func get()->(Int->String){func post(count:Int)->String{if count>50{return "success";}else{return "failed"}}return post;}let v8 = get();//v8拿到的是get()函数的地址let v9 = v8(58);//v9拿到的是get函数的返回值//函数指针/地址作为参数,函数作为参数传给函数,函数的传递</span><span style="font-size:24px;"></span><span style="font-size:24px;">//闭包是难点,,闭包的作用主要是函数与函数之间的沟通,有点像Block</span><span style="font-size:24px;"></span><pre name="code" class="objc">//(num:Int)->Bool闭包参数类型func hasColsureMatch(arr:Int[],value:Int,cb:(num:Int)->Bool){for item in arr{if cb(item){return true;}}return false;}var ar = [20,9.100,34,89,39];var v1 = hasClosureMatch(arr,40,{(num:Int) -> Bool inreturn num >= 40;});println("v1 is \(v1)");

你的选择是做或不做,但不做就永远不会有机会

Swift的函数与函数指针、闭包Closure等相关内容介绍

相关文章:

你感兴趣的文章:

标签云: