Language
日本語
English

Caution

JavaScript is disabled in your browser.
This site uses JavaScript for features such as search.
For the best experience, please enable JavaScript before browsing this site.

  1. Home
  2. SwiftBeginner - What are Functions?

What are Functions? - Japanese Only

みなさまどうも。

さて、続きまして『関数』(かんすう)についてやっていきましょう。まず『関数』とはなにか、というところからやっていきます。

これまで変数とか定数とかを紹介してきました。

変数とか定数とかって「データに名前をつけて呼び出したり操作したりできるようにしたもの」って感じでしたよね。配列とか辞書とかも同じような概念だったかと思います。

let love = "好きだー!!"

print(love) // いつでも呼び出せます。

print(love) // いつでも何度でも呼び出せます。

print(love) // いつでも何度でも愛を伝えることができます。自分の想いは言わなきゃ伝わりません。

『関数』の場合は「処理(演算)に名前をつけていつでも操作したり呼び出せるようにしたもの」ってイメージになります。

なんのこっちゃってお話なんですが、例えば、数値『1』を保存するとなると変数とか定数とかが使われますよね。

let n = 1 // 数値『1』を定数『n』で保存します。

じゃあ演算式『1 + 1』があったとして「この演算そのものをいつでも呼び出せるようにしたいぜぇ」というときに登場するのが『関数』です。

というわけで『関数』を定義してみます。こんな感じになりますね。

func test() {
    print(1 + 1)
}

上記のサンプルは『print(1 + 1)』という処理に『test』という名前を付けていつでも呼び出せるようにした形です。

まず文法から確認していきます。何やら文頭に『func』って記述してありますね。

これが「関数を定義するよ!」ってコンピューターに教えてあげる宣言のような感じになり、『関数』を定義する際には必ず記述する必要があります。変数とか定数を定義するときに使った『var』とか『let』とかと同じような感じですね。

『func』を記述したら半角スペースとかを置いて、その後に『関数名』を記述します。上記のサンプルの場合は『test』が該当しますね。

ちょっと注意点ですが、Swiftでの関数名のネーミングルールとして『ローワーキャメルケース』が推薦されていますので特別な理由がない限りは『ローワーキャメルケース』を使用するようにして下さい。

『ローワーキャメルケース』とは「最初が小文字で複合語の単語の最初を大文字で表記した名前」のような意味になります。

例えば「this is a pen」を『ローワーキャメルケース』で表記すると『thisIsAPen』になります。

そして『アッパーキャメルケース』というのもあって、これは「最初が大文字で複合語の単語の最初を大文字で表記した名前」って感じになります。「this is a pen」の『アッパーキャメルケース』は『ThisIsAPen』って感じです。

そんでもって『スネークケース』や『チェインケース』というものもあります。『スネークケース』は「単語の区切りを『_』で表記したもの」なので「this_is_a_pen』、『チェインケース』は「単語の区切りを『-』で表記したもの」なので「this-is-a-pen』となりますね。

ちょっと色々あって覚えづらいかもしれませんが、これらの単語はプログラム言語のコーディングルールなどでよく使用されるので覚えておいたほうが良いかもです。

Swiftで関数名として使用できる識別子は変数名とかと大体同じです。

ただ、Swiftはバージョンによって識別子のネーミングルールが変わることが多いため、あまり使われない文字や記号を識別子として使用するのは避けたほうが無難な気がします。

こちらでネーミングルールの解説をしておりますので忘れちゃった方は確認してみてください。

そして『関数名』の隣に『()』と『{}』を置きます。この『()』と『{}』の周りについては半角スペースとかを置いても置かなくてもOKです。これは好みでOKなのでお好きにどうぞ。

// これはどちらもOKです。
func test () {}

func test1(){}

そして『{}』の中に処理(演算)を書きます。今回は『print(1 + 1)』という演算を記述していますね。『print(1 + 1)』と『print("初音ミク")』を同時に実行したい、といった場合は以下のようにします。

func test() {
    print(1 + 1)
    print("初音ミク")
}

まあそのまま書くだけでOKなので特に難しくはないかと思います。

そしてちょっと注意点ですが「『{}』の中は『インデント』してあげる」というのが基本的なマナーになります。これは他のプログラム言語でも基本的なマナーになってることが多いので覚えておいて下さい。

func test() { // こういうのはあまり好まれません。
print(1 + 1)
print("初音ミク")
}

※インデントについてはこちらへどうぞ

というわけで『関数』の定義についてはこんな感じになりますね。

さて、では定義した『関数』を呼び出しして実行してみましょう。こんな感じになります。

func test() {
    print(1 + 1)
}

test() // 数値『2』が出力されます。

上記の『test()』ってところに注目です。こんな感じで『関数名()』とすることで定義した関数を呼び出して実行させることができます。『()』を付けるのを忘れないようにしてください、これが『関数』を実行させる際のトリガーのようなものになります。

さて、『関数』の定義と呼び出しについてはこんな感じになります。

ただ、今のところ『print(1 + 1)』という風に「処理が固定されている」ためあまり汎用的とは言えません。というわけで次の記事では『引数』についてやっていきましょう。ではではこの辺で。失礼致します。

This article was written by Sakurama.

Author's beloved small mammal

桜舞 春人 Sakurama Haruto

A Tokyo-based programmer who has been creating various content since the ISDN era, with a bit of concern about his hair. A true long sleeper who generally feels unwell without at least 10 hours of sleep. His dream is to live a life where he can sleep as much as he wants. Loves games, sports, and music. Please share some hair with him.

If you find any errors or copyright issues, please .