■ Kotlin #18:スコープ関数

Kotlinのスコープ関数
前回記事:Kotlin #17:null許容型


スコープ関数

スコープ関数 (scope functions):引数として関数オブジェクトを受け取って、その関数のスコープを変更する。
標準ライブラリ「Standard.kt」で定義され、let、with、run、apply、alsoなどの関数がある。

レシーバ

レシーバ (receiver):あるオブジェクトのメソッドを呼び出すとき、そのオブジェクトのことをレシーバと呼ぶ。
= オブジェクト同士はメッセージのやり取りで動作していると考えると、メッセージの受信者がレシーバ

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 件のコメント:

その他の記事