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

来源:互联网 发布:优化教学体验成功论文 编辑:程序博客网 时间:2024/05/22 04:35
<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 in    return num >= 40;});println("v1 is \(v1)");



0 0
原创粉丝点击