Cih*_*Tek 11
来自Apple的Swift语言指南:
有时,在调用函数时命名每个参数很有用,以指示传递给函数的每个参数的用途.
如果希望函数的用户在调用函数时提供参数名称,请为本地参数名称定义每个参数的外部参数名称.
因此,您不需要"外部参数名称",但使用它们是一个好习惯,因为它们在调用方法时用作有关参数的文档.
例如,不使用外部参数名称,您可以定义这样的连接方法:
func join(_ s1: String,_ s2: String,_ joiner: String) -> String {
return s1 + joiner + s2
}
Run Code Online (Sandbox Code Playgroud)
然后会像这样调用:
join("foo", "bar", ", ")
Run Code Online (Sandbox Code Playgroud)
如您所见,每个参数的含义都不是很清楚.使用外部参数名称,您可以定义相同的方法,如下所示:
func join(string s1: String, toString s2: String, withJoiner joiner: String) -> String {
return s1 + joiner + s2
}
Run Code Online (Sandbox Code Playgroud)
然后会强制用户像这样调用它:
join(string: "foo", toString: "bar", withJoiner: ", ")
Run Code Online (Sandbox Code Playgroud)
您可以看到它使参数的含义以及方法的作用更加清晰.
在这个简单的例子中,它似乎并不那么重要,但是当定义采用不那么明显含义的大量参数的方法时,使用外部参数名称将使您的代码更容易理解.
Swift 3更新:
随着Swift 3的引入,这变得更有意义.考虑append(contentsOf:)Swift 3中Array类的方法:
在这种情况下,没有不同的内部和外部参数名称将迫使我们将标签更改为contentsOf类似于string调用站点中的标签,这不会像前一个那样好.Swift 3 API指南依赖于具有不同的内部和外部参数名称来创建简洁明了的方法.
| 归档时间: |
|
| 查看次数: |
4123 次 |
| 最近记录: |