6、函数

**函数:

1. func 函数名(外部参数名1 本地参数名1:参数类型1,外部参数名2 本地参数名2:参数类型2) -> 参数的返回类型{
函数体
}
func greet(outA a:String ,outB b:String)->String{
return a+b
}

1.1 如果提供了外部参数名,函数被调用时,必须使用外部参数名。

greet(outA: "a", outB: "b")
一般,第一参数省略其外部参数名,第二个以后的参数使用其本地参数名作为外部参数名使用。函数的所有本地参数必须不一致,但是可以共享相同的外部参数。

外部参数名就是便于阅读代码,本地参数名才会参与逻辑运算。

1.2 第一个参数省略外部参数名,第二参数及以后的本地参数名当做外部参数名使用(可以将本地参数名命名更有意义些)

func greet(a:String,b:String)->String{
    return a+b
}
print(greet("a", b: "b"))

1.3 本地参数名不一致,外部参数名共享:

func greet(out a:String ,out b:String)->String{
return a+b
}
greet(out: "a", out: "b")

1.4 忽略外部参数名(坏处:不便阅读)

func greet(a:String,_ b:String)->String{
    return a+b
}
print(greet("a", "b"))

2 默认参数值

func greet(a:Int = 1){

}

3 可变参数

变量类型名后面加(...)的方式来定义可变参数,可变参数在函数体内当做这个类型的一个数组。
func greet(var a:Int,b:Int...)->Int
{
    for item in b
    {
        a += item
    }
    return a
}
print(greet(1, b: 1,2,3,4))

4 变量参数和常量参数

函数参数默认是常量的。通过在参数名前加关键字 var 来定义变量参数。
在函数体内对变量参数的做的修改,在函数体外是不可见的。
// a 是变量参数,b 是常量参数
func greet(var a:Int,b:Int)->Int{

}

5 输入输出参数

想让函数体内修改一个参数的值,并且在修改完之后函数体之后可见,可以在参数定义前加 `inout` 关键字。
在调用时,需要在参数前面加 & 符号,表示这个值可以被函数修改
func swapTwoInts(inout a:Int, inout _ b:Int){
    let temp = a
    a = b
    b = temp
}

var someInt = 3
var otherInt = 108
swapTwoInts(&someInt, &otherInt)
print("someInt = \(someInt), otherInt = \(otherInt)")

6 函数类型

函数类型可以作为普通的类型使用,可以作为参数类型,返回值类型

7 函数特殊定义

swift 中函数可以嵌套定义。

**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值