2017/11/13更新

[Swift] 関数ラベルの使い方を学ぶ

このエントリーをはてなブックマークに追加      

こんにちは、@yoheiMuneです。
今日はSwiftの関数ラベル(Function Argument Label)の使い方を、ブログにまとめていきたいと思います。Swift使い始めの時にはなかなか混乱しましたが、一度学ぶとスッキリとするので、この機会にぜひSwift力をアップしてみてください。



目次




サンプルコードについて

このブログに記載しているコードは、以下で実際に動かして試すことができます。
http://swift.sandbox.bluemix.net/#/repl/5a03a21721ea23783dbd9da6



関数ラベルとは

関数ラベル(Function Argument Label)とは、関数を呼び出す時に指定する引数の名前です。例えば以下の関数があるとします。
func someFunction1(firstParam: String, secondParam: String) {
    print("First=\(firstParam), Second=\(secondParam)")
}
これを呼び出す場合には、引数にfirstParamsecondParamを指定します。
someFunction1(firstParam: "AAA", secondParam: "BBB")
これが関数ラベルです。関数ラベルという単語だけを聞くと分かりづらいですが、分かってしまえば大したことないですね。



関数ラベルに別名をつける

上記では、関数定義のパラメータ名と関数呼び出し時のラベル(つまり関数ラベル)が同じですが、別々にすることもできます。以下のように、パラメータ名の前に関数ラベルを指定します。
// 関数ラベルに別名をつける
func someFunction2(first firstParam: String, second secondParam: String) {
    print("First=\(firstParam), Second=\(secondParam)")
}
ここではfirstsecondという関数ラベルを定義しています。これを呼び出すには以下のようにします。
someFunction2(first: "AAA", second: "BBB")
Objective-Cからの流れで、Swiftではパラメータ名も含めて関数の意味を定義する設計なので、関数ラベルにどのような名前をつけるかは非常に重要です。



関数ラベルを省略する

呼び出す場合に毎回関数ラベルを指定するのがうざったいという場合には、省略することもできます。別名指定の時に_(アンダースコア)を指定します。
// 関数ラベルと省略する.
func someFunction3(_ firstParam: String, _ secondParam: String) {
    print("First=\(firstParam), Second=\(secondParam)")
}
これを呼び出すには、以下のように行います。
someFunction3("AAA", "BBB")
他の言語っぽい呼び出し方になりました。このように関数呼び出し時のラベルを省略することも可能です。



参考資料

関数ラベルは以下の公式ドキュメントに解説があります。
https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Functions.html#//apple_ref/doc/uid/TP40014097-CH10-ID166



最後に

Swiftは機能がたくさんあって独特な雰囲気もありますが、使いなれると楽しいですね。他の言語にもこんなのあったらいいのにと思う機能が色々とあります。Swiftの使い方は引き続きブログを書いていきたいと思います。

本ブログでは、Swift、Go言語、Python、フロントエンド、Linux、Node.js、インフラ、Java、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時に、解決の糸口を見つけられる」そんな目標でブログを書き続けています。今後も役立つネタを書いていきますので、ぜひ本ブログのRSSTwitterをフォローして貰えたら嬉しいです ^ ^

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。