同一个参数有两个不同的名称有什么意义?

What is the point of having two different names for the same parameter?

func mapEachElement (inArray arr: [Int],  withFunc aFunc: (Int))

为什么会有 "inArray and then "arr"...有什么意义?

与 "withFunc and "aFunc" 相同,它使代码更复杂,也更难阅读,为什么还要使用它们?

inArray 是函数调用者在传递参数时应使用的外部名称。 arr 是函数实现者在实现中用来引用参数的内部名称。您不必提供外部 name.It 使其更具可读性。它更像是使 swift 函数名称和参数像 Objective-C 函数一样可读。

我也不赞成使用不同的内部名称和外部名称。

有或没有外部名称对我来说很有意义。

object.BeepXTimes(6) 不需要为其参数指定外部名称,因为函数名称暗示了参数的含义。

我认为的基本原理是,有时函数的外部参数的命名在句子中的措词对调用者有意义:

someView.animateInWithDuration(0.25, withTimingFunction: .easeIn)

外部名称 withTimingFunction 使函数调用读起来像一个句子,但 withTimingFunction 使内部参数名称变得糟糕。您可能希望您的参数名称只是 timingFunction。拥有单独的内部和外部参数名称可以让您做到这一点。

不过,对我来说,这在函数定义中要求的额外复杂性似乎不值得。好消息是,默认情况下,内部和外部参数名称都使用相同的名称创建参数,因此标准语法简单易读。

这些是内部外部参数名称。

就像在 Obj-C 中一样,您可能有

- (void)calculateFoo:(id)foo withBar:(id)bar ...

[object calculateFoo:var1 withBar:var2];

在Swift中,我们使用

func calculateFoo(foo: AnyObject, withBar bar: AnyObject) ...

object.calculateFoo(var1, withBar: var2)

内部名称 foobar 只能在 function/method 内部访问。外部名称提供用于调用函数的参数 labels

在您的情况下,您需要使用内部名称nibBundle。这是函数体内可访问的那个。