我知道函数中的外部名称是什么。但我不能对这个问题给出一个准确,清晰和令人信服的答案:外部名称的目的是什么,何时使用它以及使用它的好处是什么。
func RandomInt(minimum min: Int, maximum max: Int) -> Int {
if max < min { return min }
return Int(arc4random_uniform(UInt32((max - min) + 1))) + min
}
我的理解
在上面的代码中,minimum
和maximum
是外部名称。它们“绑定”到内部名称(min
和max
)。调用函数时,外部名称应写入参数列表。这个冗长且具有描述性的外部名称可在您使用该功能时提高代码可读性。
如果出现任何问题,请更正我的理解,或在需要时添加更多
非常感谢。
答案 0 :(得分:3)
使用外部参数名称可以允许调用函数 以一种富有表现力,句子般的方式,同时仍然提供一个 意图可读且清晰的函数体。
例如,
func sayHello(to person: String, and anotherPerson: String) -> String {
return "Hello \(person) and \(anotherPerson)!"
}
print(sayHello(to: "Bill", and: "Ted"))
答案 1 :(得分:1)
外部参数主要是为了与Obj-C方法兼容,因为Obj-C也使用它们(尽管命名方式不同),但它们也有助于方法调用者上下文的可读性。
请注意,外部参数实际上是方法名称的一部分,因此您可以通过更改外部参数来重载方法。
命名参数的另一个有趣之处是能够提供默认值:
func test(x x: Int = 0, y: Int = 1, z: Int = 2) {
print("x: \(x), y: \(y), z: \(z)")
}
// we can skip a parameter in the middle!
test(x: 10, z: 5)
顺便说一句,命名参数在许多编程语言中很常见(参见wikipedia上的列表)。尽管如此,每种语言都有不同的实现方式。