首页 > Swift > Swift学习 - “方法的”外部参数名

Swift学习 - “方法的”外部参数名

  1. What is 外部参数名
    其实把它叫做“标签”更贴切,xcode提示的中,就把它提示为label。外部参数名(标签,label)就是在调用一个方法时要在方法的参数前面加上一个特定的名字,目的是便于阅读代码,提高维护效率。

  2. 外部参数名的用法
    Swift中默认给第一个参数名称一个局部参数名称,第二和后续的参数 局部参数名称 和 外部参数名称 默认相同
    但是,要注意的是:函数可同时有局部名称(内部使用)和外部名称(调用函数时使用),方法的参数也类似,不过方法和函数的局部名称和外部名称的默认行为是不一样的

示例:
在类中定义一个方法

func add(innerParam1 : Int, innerParam2 : Int)-> Int {
    return innerParam1 + innerParam2
}

调用方法
按照我学习其他高级语言的惯性思维,我会这样调用:

self.add(2,3)

然而这样xcode会报错, 应该这样调用

self.add(2,innerParam2 : 3)

我在第一次遇到这个问题的时候不知所措,因为我并没有显示的定义外部参数名,但是系统给添加了默认的与形参相同的外部参数名。但是奇怪的是第一个参数却没有默认添加外部参数名。(反人类的设计啊。。。)
后来才找到原因,就是刚才提到的
Swift中默认给第一个参数名称一个局部参数名称,第二和后续的参数局部参数名称和外部参数名称默认相同。

我对于这种不和谐不一致的调用方式极不习惯,于是找到几种保持一致性的方式:

  1. 如果不想为方法的第二个及后续参数提供外部参数名称,在前面使用下划线 _ 作为该参数的显式外部名称。

    func add(innerParam1 : Int, _ innerParam2 : Int)-> Int {
    return innerParam1 + innerParam2
    }
    调用

    self.add(2,3)

  2. 或者统一为方法的第一个参数提供同样的外部参数名,可以显示在参数前添加#号

    func add(#innerParam1 : Int, innerParam2 : Int)-> Int {
    return innerParam1 + innerParam2
    }
    调用

    self.add(innerParam1:2, innerParam2:3)

  3. 或者显示制定所有的外部参数名

    func add(outerParam1 innerParam1 : Int, outerParam2 innerParam2 : Int)-> Int {
    return innerParam1 + innerParam2
    }
    调用

    self.add(outerParam1:2, outerParam2:3)

请与 ht t p://w ww.j ians hu.c om/p/20cd19d478dc 对比参照

上一篇: debian下安装PHP调试利器XDebug

下一篇: Xcode7 真机调试(无需证书)详解