函数是一段代码和一个会意的名字,用于执行特定的任务
使用函数叫“调用(call)”
就像公式一样,使用函数需要提供参数
函数调用的结果叫返回值
函数都有类型,包含参数和返回值类型。
定义函数:
形式:func函数名(参数1:类型,参数2:类型,...) -> 返回结果的类型 {执行语句 return 返回值}
调用: var 变量名称 = 函数名(变量1,变量2,...)
内部参数名,外部参数名
//简单示例:
//1.1
func add (a:Int, b : Int) -> Int {
return a + b
}
var sum = add(a: 3, b: 4) // 7
//1.2
//使用_可以省略外部参数名
func add1 (_ a:Int,_ b : Int) -> Int {
return a + b
}
add1(1, 2)
//2.1
func sayHello(name:String) -> String {
return "Hello" + name
}
sayHello(name: " xiaobo")
//2.2
//一般第一个参数的外部参数名包含在函数名中,WithGreetingWord为外部参数名,greeting为内部参数名,会显示使用外部参数名
func sayHello1(name:String, WithGreetingWord greeting:String) -> String {
return "\(greeting),\(name)!"
}
sayHello1(name: "xiaobo", WithGreetingWord: "Hi") //Hi,xiaobo!
//3.1
//无参数无返回值,一般用于执行一系列的操作,不需要结果
func welcome() {
print("欢迎光临")
}
welcome()
//多返回值(使用元组)
func maxMin() -> (Int,Int) {
return (Int.min,Int.max)
}
maxMin().0
maxMin().1
//参数以 名称:类型 列出,多个参数间用逗号分隔
func add1(x:Int, y:Int, z:Int) -> Int {
return x + y + z
}
add1(x: 1, y: 2, z: 3)
//可以给某个参数以默认值
func add2(x:Int, increment:Int = 2) -> Int {
return x + increment;
}
add2(x: 3)
函数类型: 包含参数和返回类型的简写形式,可以像普通变量那样使用,一般用于函数式编程,比如:
(Int,Int) -> Int
func calculate(x:Int , y:Int , method:(Int,Int) -> Int) -> Int {
return method(x,y)
}
func add3(x:Int ,y:Int) -> Int {
return x + y
}
func multiply(x:Int,y:Int) -> Int {
return x * y
}
calculate(x: 3, y: 4, method: add3(x:y:))
calculate(x: 3, y: 4, method: add3)
calculate(x: 5, y: 6, method: multiply)
可变参数:可变参数可以接受零个或多个值。函数调用时,你可以用可变参数来指定函数参数,其数量是不确定的。
import Cocoa
func vari<N>(members: N...){
for i in members {
print(i)
}
}
vari(members: 4,3,5)
vari(members: 4.5, 3.1, 5.6)
vari(members: "Google", "Baidu", "Runoob")