Swift 总结(1)-可变参数,嵌套for循环操作,输入输出参数

1、可变参数

/// 可变参数
    func sumNumbers(_ numbers: Int...) -> Int {
        var sum = 0
        for number in numbers {
            sum += number
        }
        
        return sum
    }

调用:
let sum = sumNumbers(1, 2, 3)
print("sum = \(sum)")
//参考:public func print(_ items: Any..., separator: String = " ", terminator: String = "\n")的写法

2、嵌套for循环操作-跳出外部for循环的操作

outer: for i in 0 ... 5 {
    for k in 0 ... 4 {
        if k == 3 {
            continue outer
        }
        
        if i == 3 {
            break outer
        }
        
        print("i = \(i) k = \(k)")
    }
}

3、输入输出参数

函数的参数默认是let属性,但如果我们想修改参数的值,需要设置该参数为输入输出参数。两个注意点:
1、输入输出参数需要定义为var属性
2、在读取的时候,需要用“&”
3、可变参数不能用inout
4、inout 参数不能有默认值
5、inout 参数属于地址传递(引用传递)

func changeNumberValue(_ num: inout Int) {
      num = 100
}

调用:
var number = 20
changeNumberValue(&number)
print("number = \(number)")

应用:交换两个数 等同 Swift自带的swap方法
func swapValues(_ v1: inout Int, _ v2: inout Int) {
    let temp = v1
    v1 = v2
    v2 = temp
}

4、函数重载(Overload)

1、函数名相同,参数不同
2、注意二义性

5、内联函数(Inline Function)

内联函数在开启项目优化的时候,会自动的将简单函数变成内联函数,而函数则直接展开为函数体
但是:
1、复杂的函数不会进行内联优化
2、递归函数也不会进行内联优化
3、包含动态派发(动态绑定)也不会进行内联优化

typealias 起别名

你可能感兴趣的:(Swift 总结(1)-可变参数,嵌套for循环操作,输入输出参数)