函数
完成某种功能的代码块,可以独立存在。放在类和结构体中,则称之为方法
定义:
使用 关键字 func 定义一个函数
基本语法:
func 函数名 (参数列表) -> 返回值类型{
语句组
return 返回值
}
参数列表中的多个参数之间 用 逗号(,)隔开。也可以没有参数。
使用箭头 -> 指示返回值类型,没有返回值,则省略。如果有多个返回值,可以借助 元组
代码实例:
<span style="font-size:14px;">//无参数和返回值
func noParamNoReturn(){
print("没有参数和返回值")
}
//有一个参数无返回值
func hasParamNoReturn(param:String){
print("传入的参数为\(param)")
}
//无参数有一个返回值
func noParamHasReturn()->Int{
return 100
}
//有多个参数 和 多个返回值
func hasParamsAndReturns(index : Int,name :String,weight:Float)->(Int,String,String){
return(index+100,name,"\(weight)kg")
}</span>
函数的调用
<span style="font-size:14px;">//函数的调用
noParamNoReturn()
hasParamNoReturn("函数")
var value = noParamHasReturn()
print(value)
var values = hasParamsAndReturns(1, name: "张三", weight: 40.5)
print(values)</span>
打印的结果
<span style="font-size:14px;">没有参数和返回值
传入的参数为函数
100
(101, "张三", "40.5kg")</span>
从打印的结果可以看出,当有多个返回值时,返回值为一个元组
几种不同的参数形式:
1,外部参数名
外部参数名,就是为每个参数起一个别名,供我们调用的时候 使用
<span style="font-size:14px;">func hasParamsAndReturns( i index : Int, n name:String, w weight:Float)->(Int,String,String){
return(index+100,name,"\(weight)kg")
}
hasParamsAndReturns(i: 1, n: "张三", w:40.5)</span>
代码参数列表中的 i 、n 和 w 就是外部参数名。使用了外部参数名,在调用的时候必须使用外部参数名。
2,省略外部参数名
在定义函数是,使用下划线( _ )表示外部参数名
<span style="font-size:14px;">func hasParamsAndReturns(index : Int, _ name:String, _ weight:Float)->(Int,String,String){
return(index+100,name,"\(weight)kg")
}
hasParamsAndReturns(1, "张三", 40.5)</span>
参数列表中的第一参数不需要使用下划线( _ ),第一参数名默认是省略的,调用的时候 不写。
他们的区别:
不适用外部参数名,调用函数时,第一个参数名默认省略,其余的参数都要写参数名;
使用了外部参数名,调用函数时,必须使用外部参数名;
使用了省略外部参数名,调用函数时,不写参数名。
参数的默认值
在定义函数的时候,可以为参数设置默认值,调用的时候可以忽略该参数
<span style="font-size:14px;">func sayHello(name :String = "张三")->String{
return "\(name) say Holle"
}
print(sayHello())
print(sayHello("李四"))
//张三 say Holle
//李四 say Holle</span>
可变参数
参数个数可以变化,但是参数的数据类型必须相同,调用的时候,每个参数之间用逗号( , )隔开
<span style="font-size:14px;">func sum(nums :Int...)->Int{
var total:Int = 0
for num in nums{
total += num
}
return total
}
print(sum(10,2,1,13))
//26</span>
<span style="color: rgb(102, 102, 102); font-family: STHeiti; line-height: 25px; word-spacing: 3px;"><span style="font-size:14px;">注意:一个函数最多只能由一个可变参数,它必须是参数列表的最后的一个。这样做是为了避免函数调用时出现歧义。</span></span>