Swift之函数

swift函数是个重点,但是不难理解,特殊的我会说明的。

函数的定义

/// 函数定义,格式 函数名(形参列表)->返回值类型
func sum(x:Int,y:Int) -> Int {
    return x + y
}

在外部调用print(sum(x: 10, y: 50)),这个说明一下:

//swift1.0调用的方式 sum(10,50)所有的形参都会省略
    //1.0 其他的程序员非常喜欢
    //swift2.0调用的方式 sum(10, y: 50),第一个形参的名称会省略
    //swift3.0调用的方式 OC的程序员非常喜欢

外部参数

func sum1(num1 x:Int,num2 y:Int) -> Int {
    return x + y
}

调用print(sum1(num1: 30, num2: 60)),说明一下:

//外部参数就是在形参前加一个名字
//外部参数不会影响函数内部细节
//外部参数会让外部调用方看起来更加的直观

另外一种写法:

func sum2(_ x:Int,_ y:Int) -> Int {
    //在swift中_就是可以忽略任意不感兴趣的内容
    //Immutable value 'i' was never used; consider replacing with '_' or removing it
    // i从来没有被用到,建议使用_替代
    //for i in 0..<10 {
    for _ in 0..<10 {
        print("hello world")
    }
    return x + y
}

调用print(sum2(40, 60)),如果使用下划线_,在外部调用函数时,会忽略形参的名字.

函数的默认值

func sum3(x:Int = 1,y:Int = 2) -> Int {
    return x + y
}

然后我们这么调用:

    print(sum3())
    print(sum3(x: 10, y: 20))
    print(sum3(x: 10))
    print(sum3(x: 30))

打印的值是:

3
30
12
32

说明:

//通过给参数设置默认值,在调用的时候,可以任意组合参数,如果不指定的,就使用默认值
// OC中需要定义很对的方法,以及方法实现,最终调用包含所有参数的那个函数

与OC对比一下:

Swift之函数_第1张图片
图.png

可以看出OC中如果想组合不同参数的话就得写很多个方法,第一个带一个参数,第二个带两个参数,举个例子就是,如果你想使用通过url加载图片的话就用第一个,如果还想带placeholder图的话就使用第二个,所以你需要写很多个方法满足不同的需求,一般为了达到效果,调用那个最长的函数。如果在swift中的话,直接就可以写一个,然后定义一个默认值,如果需要改哪个参数的话就调的时候给个值就可以,其他的还是使用默认的值,调用起来比较方便。

无返回值的情况

/*
 知道就行,主要用在闭包,在阅读第三方代码时保证能够看懂
 -直接省略
 -()
 -void
*/

func demo1() {
    print("哈哈")
}
//->输出到目标
func demo2() -> () {
    print("呵呵")
}

func demo3 () -> Void {
    print("嘻嘻")
}

这几种就是什么返回值都没有。

总结

函数比较重要,要多多琢磨,加深理解。

你可能感兴趣的:(Swift之函数)