第一級オブジェクト
第一級オブジェクト (first-class object)
変数への格納や、引数や戻り値として受け渡しを行えるようなオブジェクトのこと。
変数への格納や、引数や戻り値として受け渡しを行えるようなオブジェクトのこと。
関数オブジェクト
関数オブジェクト
関数をオブジェクト化したもの。
定義済み関数への参照は ::演算子で取得できる。
関数をオブジェクト化したもの。
定義済み関数への参照は ::演算子で取得できる。
fun func() ・・・ val f1 = ::func
無名関数
無名関数
名前を持たない関数を作成することで、未定義の関数をオブジェクトとして扱うことができる。
名前を持たない関数を作成することで、未定義の関数をオブジェクトとして扱うことができる。
val f1 = fun(i1: Int, i2 Int) = i1 + i2 f1(1,2)
関数オブジェクトの戻り値型
関数オブジェクトの戻り値の型は「(引数型) -> 戻り値型」
関数オブジェクトを引数とする関数の引数の型は上記の書式で指定。
関数オブジェクトを引数とする関数の引数の型は上記の書式で指定。
fun func(a1: (Int, Int) -> Int) ・・・
高階関数
高階関数 (higher-order function)
関数を引数としたら、戻り値として関数を返すよう関数のこと
→ 関数型プログラミング
関数を引数としたら、戻り値として関数を返すよう関数のこと
→ 関数型プログラミング
ラムダ式
ラムダ式
無名関数よりも簡潔に関数オブジェクトを生成
この場合、引数名は自動的に「it」となる。
無名関数よりも簡潔に関数オブジェクトを生成
{ 引数名 : 引数型 -> 処理 }
{i1: Int, i2: Int} -> i1 + i2}関数にラムダ式を引数で渡す場合、型を省略できる。
fun func(a1: (Int, Int) -> Int) ・・・ func({i1, i2} -> i1 + i2})引数にラムダ式を渡す場合 ( ) も省略できる。
fun func(a1: (Int, Int) -> Int) ・・・ func{i1, i2} -> i1 + i2}ラムダ式の引数が1つしかない場合は、引数名も省略できる。
この場合、引数名は自動的に「it」となる。
次回記事:Kotlin #10:例外処理
Android Studio, Kotlin学習
0 件のコメント:
コメントを投稿