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))