swift学习笔记->函数

这一章来看看swift的函数声明与调用

函数声明 func 函数名(参数)->返回类型{函数代码块}

我们来声明一下

//无参无反
func test(){
    print("asdfa");
}
//有参有反
func test1(a:Int)->Int{
   return ++a
}
//有参无反
func test2(a:Int){
   print(a)
}
func test(a:Int)->Void{
    print(a);
}
//无参有反
func test()->Int{
   return 1
}

函数基本的四个类型就是这样,很简单

来看看swift特殊的地方

外部名

当swift函数有多个参数时写法与其他语言有所区别

func test5(a: Int ,b:Int) ->Int {
    return a+b
}
test5(5, b: 3)

注意下  这里调用时有什么不同?   多了个b:  对,这就是外部名这个外部名是可变的,针对的是调用者而言  你可以把b改成s或任意变量名(符合变量命名规范)

func test5(a: Int ,s b:Int) ->Int {
    return a+b
}
test5(5, s: 3)

这样就把外部名改成了s   第一个变量是不用外部名的,当然你也可以给他加一个   就像刚才给b的变量名改成s一样

默认值

这个就是字面上意思   参数有一个默认值,声明函数的时候设置

func test6(a: Int = 5,b:Int = 5) ->Int {
    return a+b
}
test6() test6(
5) test6(b: 3) test6(5, b: 3)

如果这个函数参数声明了默认值 则会有这么多种调用方式(没给的参数则会用默认的)

这里注意几点

1.有默认值的情况,参数统统都放在后面

2.调用时参数顺序,尽量与声明函数时的顺序一样

修饰

默认情况下形参参数类型是let常量,如果需要修改则自行加上var

如果需要引用传值则加inout

fun test7(a:Int){
  //a=3(报错)
  print(a)    
}
fun test8(var a:Int){
  a=3
  print(a)    
}
fun test8(inout a:Int){
  a=3
  print(a)    
}
var a = 5
test8(a)
a

可变参数长度

func add(initNum: Int,numbers:Int...)->Int {
    var totals = initNum
    for num in numbers {
        totals += num
    }
    return totals
}
add(5,numbers: 6)
add(6,numbers:2,4,3)

写法如上第二个参数,不管多少个int类型参数都会集合起来作为numbers数组

原文地址:https://www.cnblogs.com/pengser/p/4969950.html