(26)【Swift学習】[11] 関数コール

投稿者: | 2017年11月5日

この記事は最終更新から 1439日 が経過しています。

関数の書き方

・行頭に「func」と書く。
・引数は「変数名:データ型」と書く。複数あれば「,」でつなぐ。
・戻り値は「->データ型」と書く。
以下、簡単な関数 sayHello() を実装してみた。

関数を書く前で関数を使用するとエラーになる

C言語等ではプロトタイプ宣言が必要なのは当たり前だが、これがOKな言語は結構ある。
Swiftでは許されないようだ。

「_」で関数コール時に引数名を省略できる

関数実体の引数宣言の直前に「_」を書くと、関数コール時にその引数の記述を省略できる。
この場合、呼び出し側でも引数名を省略しなければエラーになる。

複数の戻り値を返せる

それぞれの戻り値に名前を付けることも出来る。
この場合、各戻り値へのアクセス時には付与した名前が使える。(序数でもOK)

それぞれの戻り値に名前を付けないことも出来る。
この場合、各戻り値へのアクセス時には「0,1,2,…」の序数を使う。

配列を引数に使う

データ型を「[ ]」で括ればよい。

関数を入れ子に出来る

関数の中に関数を記述できる。いわゆるクロージャが書ける。
この場合、子関数は親関数内で宣言された変数にアクセスできる。
「A Swift Tour」には「関数が長く複雑になった場面で使え」と書かれている。

戻り値として関数を返せる

C言語で言うならば関数ポインタを返す様なものだ。
下図の関数 getFunc() の戻り値「 (Int) -> String 」は、
「Int型の引数を1個持ち、String型の戻り値を1個返す関数」を返すということ。

関数を引数に使う

関数の引数で関数を受け取ることができる。
下図の引数 judge は、
「Int型の引数を1個持ち、Bool型の戻り値を1個返す関数」を引数として入力するということ。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)