加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

从零开始自学Swift(五)

发布时间:2020-12-14 01:49:21 所属栏目:百科 来源:网络整理
导读:当函数的返回类型为函数时 func stepForward (input:Int) - Int{ return input+ 1 }func stepBackward (input:Int) - Int{ return input- 1 } /*(Int)代表这个是一个参数为int型的函数,(Int)-Int代表你要返回的函数类型必须与之一致*/ func chooseStepFunct

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

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,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
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读