美文网首页
4.2函数类型与嵌套

4.2函数类型与嵌套

作者: LucXion | 来源:发表于2020-05-22 15:01 被阅读0次

    开发者也可以像声明普通变量那样来声明一个函数变量,同样也可以对此变量进行赋值、调用等操作。将函数作为数据类型这种语言设计思路有强大的优势,这将允许开发者将一个函数作为另一个函数的参数或者返回值,大大增强了编程的灵活性。

    var Sum :(Int,Int)->Int // 函数类型由参数和返回值决定
    Sum = {(parama1:Int,parama2:Int) in // {}为闭包结构,in为闭包结构关键字
        return parama1 + parama2}
    //函数作为变量、函数作为参数的使用
    // 声明函数
    func Sum(parama:Int...)->Int {
        var temp = 0
        for item in parama {
            temp += item
        }
        return temp
    }
    // 声明函数类型的变量
    var addSum:(Int...)->Int
    // 将函数赋值给函数类型变量
    addSum = Sum
    // 调用函数类型的变量
    var totalNum = addSum(1,2,3,4,5)
    // 将函数作为参数
    func doSome(parama:(Int...)->Int) {
        print(parama(1,2))
    }
    doSome(parama: addSum)
    // 将函数作为返回值
    var addFunc:(Int,Int)->Int
    func myFunc15() -> (Int,Int)->Int {
        
        return {(param1:Int,param2:Int)in
            
            return param1+param2}
    }
    //使用addFunc变量获取返回值
    addFunc = myFunc15()
    //进行调用
    addFunc(10,20) // 这里跟我们之前的block回调没有关系,因为myFunc15的返回值是一个函数,所以addFunc只是一个函数,这一步仅仅是函数的调用
    函数的嵌套
    func myFunc16() -> (Int,Int)->Int {    
          func subFunc(param1:Int,param2:Int)->Int{        
               return param1+param2    }    
          return subFunc}
    

    相关文章

      网友评论

          本文标题:4.2函数类型与嵌套

          本文链接:https://www.haomeiwen.com/subject/olyqahtx.html