1. 函数使用func声明 name 和age是参数 ->后面是返回类型

func test1 (let name:String,let age:Int)->String{

return "姓名:"+ name+“\n”+“年龄:”+String(age);

}

打印返回的字符串 age:为标签  用以说明后面参数的含义

print(test1("哆啦A梦",age:12))

2.返回参数和类型可以是多个

func test2() ->(String.String,String){

return ("哆啦梦","100岁","狸猫")

}

print(test2())

//可以根据下标 打印返回值 类似数组

print(test2().0)

3.函数可以进行嵌套

func test3 (){

var y : Int = 0

funx add(){

y += 5 

}

add ();

print(y)

}

test3()

4.返回值可以是一个函数

func lmyzTest4() -> ((Int,Int)->Int) {

    func add (let i : Int , let j : Int)->Int{

        return i + j;

    }

    return add

}

var lmyzAdd = lmyzTest4()

print(lmyzTest4())      打印出来是   (Function)

print(lmyzAdd(2,4))   打印出来是6

5.函数作为参数

var arr = [10, 20, 30]

func minNum(let num : Int) -> Int{

    return num

}

// 将minNum作为参数传输  可以理解为为minNum函数起了一个别名叫myfunc  其实他的调用和minNum一致

func getMinNum(list :[Int], myfunc : (Int)-> Int) -> Int{

    

    var y : Int = 0

    

    for s in list {

        

        let i = myfunc(s)

        

        if (y == 0 || y > i) {

            y = i

        }

    }

    

    return y

}

var min = getMinNum(arr, myfunc: minNum)

print("获取最小值为:" + String(min))