SWIFT 可变参数

/ Mac / 没有评论 / 1254浏览

SWIFT 可变参数

  class UserModel: NSObject {
    // 类型一 参数可省略 直接给参数赋初值.这类函数参数在外部调用时,已赋初值的参数可直接省略,可以仅调用需要赋值的参数.
    // 例 1. UserModel().test()
    //  2. UserModel().test(name:"name")
    //  3. UserModel().test(name:"name",location:"location")
    //  注意: 如果一个类中出现多个以test命名但参数不同的函数时,直接调用test(),系统会因为无法识别函数而报错.
    func test(name: String = "",age: Int = 0,location: String = "") {
    }

    // 类型二 参数 数量可变,你可以传入任意数量的参数
    // 例 1. UserModel().test(numbers: 1,2,3)
    //  2. UserModel().test(numbers: 1,2,3,4,5,6)
    func test(numbers:Int ...) {
      // 此时 numbers 类似于 [Int]()
      for item in numbers {// 可以这么用
      }
    }
    
    // 类型三 参数值可变 给参数添加 inout 前缀 后name可以被修改.
    // 例 var name = ""// 传入的参数需要用 var 修饰.即必须为可变的.
    //   UserModel().test(name: &name)// 在函数中 传入的参数前要加 & (系统会自动加)
    func test(name: inout String) {
       name = "other name"
    }
}