函数的介绍
- 函数相当于OC的方法
- 函数格式
- func 函数名(参数列表) →返回值类型{代码块retuan 返回值}
func add(num1:Int,num2:Int)→Int{
return num1+num2
}
// ():空的元祖
func add()→Void{
return
}
//或则
func add()→(){
return
}
//或则
func add() {
return
}
func add(num:Int){
return
}
func add() →Int{
return 100
}
func getPerson() →(name:String,age:Int){
return("张三",3)
}
函数的使用注意
- 外部参数和内部参数
func add( num1:Int , num2:Int){
print(num1+num2)
}
//外部忽略参数,修改外部参数
//前面加另外参数即修改外部参数 ;加_即忽略
func add( _ num1:Int , abc num2:Int){
print(num1+num2)
}
- 默认参数
- 某些情况,如果没有传入具体的参数,可以使用默认参数
- 如果使用默认值,那么函数的接受参数可以是必传参数和可传参数的任意组合
- 应用 :接口升级保证接口的兼容性
如果外界没有传递参数,那么取默认值
func addNum(num1:Int,dis:Int =0)→Int{
return num1+dis
}
- 可变参数
- 格式 : 类型...
- 函数内部把这个参数当做数组来处理,函数外部直接可以传递多个值
func add(_ nums :Int...) → Int{
var result = 0
for num In nums{
result += num
}
}
add(1,2,3,4)
- 在函数内部,默认接收到的参数被赋值给一个常量,如果想要改变需要在函数内部使用var修饰
func change(num :Int){
var num = num
num = 3
}
let a =0
change(num:a)
- 指针的传递
- 默认情况下函数的参数是值传递,如果想改变外面的变量,则需要传递变量的地址
- 必须是变量,因为需要在内部改变其值
- swift 提供的inout关键字可以实现
func chang(num :inout Int){//指针(地址)的传递
num = 3
}
var b = 0
change(num:&b)
func text(){
func text2(){
}
}
函数的类型
func add(num:Int,num2:Int)→ Int{
return num +num2
}
//函数类型为(Int,Int)→Int
func jian(num:Int,num2:Int)→ Int{
return num -num2
}
- 用途:可以作为另一个函数的参数/返回值
//作为参数
func exec(n1:Int,n2:Int,fun:(Int,Int) →Int){
let result = fun(n1,n,2)
print(result)
}
exec(n1:6,n2:8,fun:add)
//作为返回值
func getFunc(name:String) →(Int,Int) →Int{
if name=="add"{
return add
}
return jian
}
- 编译器如何区分不同函数
- 靠函数名称
- 外部参数名称
- 参数类型+返回值类型 = 函数类型
func text(a:Int){
}
func text(b:Int){
}
//以上为两个不同函数,外部参数不同
网友评论