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"        

    }

    

    

}