从零开始自学Swift(五)

来源:互联网 发布:vmware12安装linux 编辑:程序博客网 时间:2024/06/05 09:13

当函数的返回类型为函数时

func stepForward(input:Int)->Int{    return input+1}func stepBackward(input:Int)->Int{    return input-1}/*(Int)代表这个是一个参数为int型的函数,(Int)->Int代表你要返回的函数类型必须与之一致*/func chooseStepFunction(backwards:Bool)->(Int)->Int{    return backwards ? stepForward: stepBackward}var currentStep=3//得到的是一个函数,该函数的参数为int型,返回的类型也是int型let step=chooseStepFunction(currentStep>0)print(step(currentStep))

常规闭包

/*闭包*///定义一个无序的数组var numbers:[Int]=[23,14,51,-11,8,-22,-91,33,67,98]var sortArray=numbers.sort({(n1:Int,n2:Int)->Bool in return n1>n2})print(sortArray)

尾随闭包

/*尾随闭包*///定义一个无序的数组var numbers:[Int]=[23,14,51,-11,8,-22,-91,33,67,98]//定义一个字典var digit:[Int:String]=[0:"zero",1:"one",2:"two",3:"three",4:"four",5:"five",6:"six",7:"seven",8:"eight",9:"nine"]let strings=numbers.map{    (var number)->String in    var output=""    if number<0{        number=number * (0-1)    }    while number>0{        output=digit[number%10]!+output        number/=10    }    return output}
0 0
原创粉丝点击