Edited at

External Parameter Namesで関数オーバロードが出来る

More than 3 years have passed since last update.

Objective-C, Swiftをほぼ知らないので、サンプルを写経している時に以下の関数宣言のexternalParameterNameにあたる部分が何を意味しているのか理解してなかった。

func someFunction(externalParameterName localParameterName: Int) {

// function body goes here, and can use localParameterName
// to refer to the argument value for that parameter
}
someFunction(externalParameterName: 1)

単に名前付き引数の際に指定する引数名を表しているだけらしい。

しかもこのExternal Parameter Nameが違うだけでオーバロードできるので余計混乱してた.

func say(msg message: String){

println("msg: \(message)")
}

func say(msg2 message: String){
println("msg2: \(message)")
}

say(msg: "hello") //msg: helloが出力
say(msg2: "hello") //msg2: helloが出力

ここら辺Delegateメソッドで多用されていて、Delegateの命名規則知らなかったのもあって以下のようなコードを文法理解していないまま書いていたがやっと意味がわかった...

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

return sections[section].count
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "Cell")
cell.textLabel?.text = sections[indexPath.section][indexPath.row]
return cell
}

参考/引用元

https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Functions.html

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CodingGuidelines/Articles/NamingMethods.html