2014-09-21 93 views
0

我试图快速学习,并围绕这里发生的事情围绕我的大脑。任何指导都将不胜感激。这个swift函数发生了什么?

这个例子是从swift tour

1. class Counter { 
2.  var count: Int = 0 
3.  func incrementBy(amount: Int, numberOfTimes times: Int) { 
4.   count += amount * times 
5.  } 
6. } 
7. var counter = Counter() 
8. counter.incrementBy(2, numberOfTimes: 7) 


问题1:在3行,为什么要使用它自己的“numberOfTimes”,而不只是“时间”?

问题2:在第八行,为什么我需要传递参数'numberOfTimes'的名称而不是参数'amount'的名称?

+3

你会发现在[函数参数名称]所有的答案(https://developer.apple.com/library/ios/documentation/Swift/ Conceptual/Swift_Programming_Language/Functions.html#// apple_ref/doc/uid/TP40014097-CH10-XID_254) – Antonio 2014-09-21 15:13:44

+0

Both:因为作者不想让这个方法对其他人清楚。良好的代码#1问题是让其他开发人员易于阅读和理解。 – zaph 2014-09-21 16:03:30

+0

@Antonio - 如果您发表评论作为答案,我很乐意接受它。那正是我所期待的。 – 2014-09-21 17:08:33

回答

0

您可以找到有关在official documentation函数参数名你所有的答案。

具体而言,您应该阅读有关外部参数名称

2

1°)参数可以有外部名称和内部名称。调用该方法时将使用外部名称,并在该方法内部使用内部名称。所以你可以使用像tableView(tableView:UITableView, numberOfRowInSection section:Int)这样的表达方法,而不必在函数内部使用长命名参数。

2°)方法规则:第一个参数不必命名,但其他参数需要命名。这是为了理解问题。 例如:counter.incrementBy(2, 7);在这里你可以理解为什么2使用,因为incrementBy但你不能明白7用于