Kotlinのlet、with、run、apply、alsoの一般的なシーン

3322 ワード

一般的なシーンの使用
  • let

  • 処理にはnull可能なオブジェクトに対して一括して判定処理を行う必要がある
      private var textView: TextView? = null
            //    let           ?
            var text = textView?.text
            textView?.setTextColor(Color.BLACK)
            
            //   let        
            textView?.let { 
                var text1 = it.text
                it.setTextColor(Color.BLACK)
            }
    
  • with

  • 同じクラスを呼び出すのに適した複数のメソッドの場合、クラス名の重複を省いて、直接クラスを呼び出すメソッドを使用できます.
       var  bean=Bean("  ",12)
            //    with 
            var s1=bean.name+bean.age
            //  with 
            with(bean){
                var  s="$name$age"
            }
    
  • run

  • let,with関数の任意のシーンに適用されます.run関数はlet,withの2つの関数結合体であるため,正確にはlet関数が関数体内でitパラメータを用いてオブジェクトの代わりにしなければならないことを補い,run関数ではwith関数のように省略でき,インスタンスの公有属性と方法に直接アクセスできる一方,with関数のオブジェクトへの入力判定問題を補完し,run関数ではlet関数のように判定処理を行うことができる
  • apply

  • 全体的な機能はrun関数と似ています.唯一の違いは、オブジェクト自体が返され、run関数は閉パッケージ形式で返され、最後の行の値が返されます.この違いに基づいて、適用シーンはrun関数と少し違います.applyは一般的にオブジェクトインスタンスの初期化に使用される場合、オブジェクト内の属性を割り当てる必要があります.
  • also

  • let関数に適用される任意のシーンでは、also関数とletは似ていますが、唯一の違いはlet関数の最後の戻り値が最後の行の戻り値であり、also関数の戻り値が現在のオブジェクトを返すことです.一般的には、複数の拡張関数チェーン呼び出しに使用できます.