Swift - 自定义函数规则说明

1,无返回值的函数

 func test(name:String){
        print(name)
    }

 2,返回一个返回值

 func test(name:String) -> String{
       return "Hello" + " " + name
    }

 print(test(name: "baibai")) //Hello baibai

 3,返回由多个值组成的复合返回值

func test(name:String) -> (Int,Bool){
       let postion = 1
       let visible = false
        return(postion,visible);
        
    }

 4,可变形参:可以接受0个或者任意数量的输入参数

   func test(numbers:Int...) -> Int {
        var count:Int = 0
        for number in numbers{
            count += number
        }
        return count
    }
 print(test(numbers:1,2,10))//13

 5,如果想要同时改变函数内外的参数值,可以利用inout关键字,同时调用函数的时候给参数加上前缀“&”

 func add(age:inout Int) -> Void {
        age += 1
    }
 var age = 22
        add(age: &age)
        print(age)//23

 6,可以使用函数类型的参数

func additive(a:Int,b:Int) -> Int {
        return a + b
    }

    //函数类型的参数
    func printAdditiveResult(addFun: (Int, Int) -> Int, a:Int, b:Int){
        print("Result:\(addFun(a,b))")
    }
printAdditiveResult(addFun: additive, a: 5, b: 7)//Result:12

 7,也可以使用函数类型的返回值

//定义个自增函数
    func increase(input:Int) -> Int {
        return input + 1
    }
    
    //定义个自减函数
    func reduce(input:Int) -> Int {
        return input - 1
    }
    
    //定义一个返回函数类型的函数
    func chooseFunction(backwards:Bool) -> (Int) -> (Int){
        
        return backwards ? reduce : increase
    }


let aFun = chooseFunction(backwards:true)
       print(aFun(3))//2

 

posted @ 2018-03-22 15:17  小白姐  阅读(162)  评论(0编辑  收藏  举报