iOS開発者のKotlin入門その3(関数)

botman3 Android

はじめに

その2の続きです。関数について書きます。

スタンダードなやつ

スタンダードな関数の書き方は下記

こんな感じ

戻り値がUnitの関数

戻り値が Unit の場合、戻り値は省略できる。

単一式関数

上述の add 関数のように1つの式だけからなる関数は下記のような単一式関数(Single-Expressopm function)として書ける。

デフォルト引数

Swift と同じようにデフォルト引数を設定できる。

可長変引数

引数に vararg をつけることで可長変引数を使える。1つの関数につき1つの可長変引数しか持たすことはできない。可長変引数以外にも引数がある場合は最後の引数を可長変引数にする。

ローカル関数

関数の中に関数を定義できる。

ジェネリック関数

関数名の前に <> を使用して、ジェネリックパラメータを持つことができる。

関数オブジェクト

下記のように関数は変数に代入できる。関数の参照は :: を使う。

下記のように無名関数も作成できる。

ラムダ式

Swift でいうクロージャ式だと思う。

インライン関数

高階関数(引数や戻り値が関数型の関数)のオーバーヘッドを避けるために inline 修飾子というのがある。

正直ほぼ意味がわかってない。。。
リファレンスをどうぞ

拡張関数

Swift でいう extension。

変数も拡張できる。

中置記法

関数が下記の条件を満たす場合、中置記法が使える。

  • 拡張関数である
  • 引数が1つである
  • infix が付いている

あんま使い所わからないけど Map 初期化時の to はこれかもしれない。

末尾再帰関数

再帰関数に tailrec 修飾子を付けるといい感じに最適化してくれるらしい。

詳細はここのリファレンス

さいごに

あとはクラスについて書いたら Kotlin については終わりたい。(早くAndroidに。。。)
書いてからすごいまとめられた記事をみつけた。
Kotlin文法 - 関数とラムダ

参考

コメント

  1. […] その3の続きです。クラスについて書きます。 […]

タイトルとURLをコピーしました