スコープ関数
スコープ関数 (scope functions):引数として関数オブジェクトを受け取って、その関数のスコープを変更する。
標準ライブラリ「Standard.kt」で定義され、let、with、run、apply、alsoなどの関数がある。
標準ライブラリ「Standard.kt」で定義され、let、with、run、apply、alsoなどの関数がある。
レシーバ
レシーバ (receiver):あるオブジェクトのメソッドを呼び出すとき、そのオブジェクトのことをレシーバと呼ぶ。
= オブジェクト同士はメッセージのやり取りで動作していると考えると、メッセージの受信者がレシーバ
= オブジェクト同士はメッセージのやり取りで動作していると考えると、メッセージの受信者がレシーバ
let関数
レシーバ.let( 関数オブジェクト: (レシーバ) -> 任意の型 ): 関数オブジェクトの戻り値
レシーバ.let { 処理 } レシーバ?.let { 処理 }
レシーバ.let { 処理 } レシーバ?.let { 処理 }
例えば変数がnullでない場合に処理実行したい:
str?.let { printLength(it) }strがnullでなければprintLengthを実行し戻り値を返す
itはレシーバを表す変数。
aooky関数
レシーバ.apply( 関数オブジェクト: (レシーバ) -> Unit ) : レシーバ
レシーバオブジェクトの関数の1つであるかのように振る舞うval con = url.openConnection().apply { useCaches = true connectTimeout = 3000 readTimeout = 5000 }ラムダ式内で設定しているプロパティはURLConnectionオブジェクトのプロパティ。
次回記事:Kotlin #19:コレクションの便利関数
Android Studio, Kotlin学習
0 件のコメント:
コメントを投稿