-函数:函数
** 函数的参数的注意事项:** 1.忽略外部参数名 若是开发者不想第二个及后续的参数设置参数名,能够使用下一个下划线 (_) 来代替一个明确的参数名。 func sum(value:Int,_ value2:Int) -> Int { return value + value2 } sum(value: 234, 343) 2.为参数设置默认值 开发者能够再函数体中为每一个参数定义默认值(Deafult Values)。当默认值定义完后,调用这个函数时能够忽略这个参数。 func printInt(Start:Int=0,end:Int=5) { for i in Start ..< end { print(i) } } printInt() 输出结果: 0 1 2 3 4 3.可变参数 使用可变参数,能够是一个参数接受零个或多个指定类型的值。设定一个可变参数须要在参数类型名后添加 “...”。 例:求几个数的平均值的功能。 func average(num:Double...){ var total : Double = 0 for i in num { total += i } print(total/Double(num.count)) } average(num: 1,2,3,4,5,6) average(num: 10,20,30) 输出结果: 3.5 20.0 4.输入-输出参数 若是开发者想用一个函数来修改参数的值,而且想让这些变化在函数调用后仍然有效。这时,须要定义输入-输入参数。他的定义是经过在参数名前加 inout 关键字。 func 函数名(inout 参数名:数据类型, ......){ ...... ...... } 输入-输出参数都有一个传递给函数的值,将函数修改后,再从函数返回来替换原来的值。 函数(&参数,......) 其中,参数前面加上 & 运算符。 func swapTwoInt( num1: inout Int, num2: inout Int) { let temp = num1 num1 = num2 num2 = temp } var value1 = 6 var value2 = 8 print("交换前") print("value1 = \(value1)") print("value2 = \(value2)") print("交换后") swapTwoInt(num1: &value1,num2: &value2) **函数的返回值** 1. 具备返回值 func 函数名(参数列表)-> 返回值 { return 表达式 } 2. 具备多个返回值 函数有多个返回值 这时候须要用到 元组类型 。 例: func maxVaule(value1:Int,value2:Int,Value3:String,Value4:String) -> (Int,String) { var maxInt = 0 var maxString : String // 判断哪一个整数最大 if value1<value2 { maxInt = value2 }else{ maxInt = value1 } // 判断两个字符串哪一个大 if Value3<Value4 { maxString = Value4 }else{ maxString = Value3 } return (maxInt,maxString) } print(maxVaule(value1: 5, value2: 1, Value3: "Hello", Value4: "Swifts")) 输出: (5, "Swifts") // 元组 ** 函数类型** 1. 使用函数类型做为参数 例: // 两个数相加 func add(a:Int,b:Int) -> Int { return a + b } // 两个数相乘 func multiply(a:Int,b:Int) -> Int { return a * b } // 输出结果 func printResult (fun:(Int,Int) -> Int, a:Int, b:Int){ print(fun(a,b)) } printResult(fun: add, a: 4, b: 5) 输出 : 6 2.使用函数类型做为返回值类型 func 函数名(参数列表)-> 函数类型 { .... }
** 函数的嵌套 **
一、 嵌套调用 在函数里调用其余函数 二、递归调用 在调用函数的过程当中调用了该函数自己。