[Android]本当にざっくりと理解するKotlinスコープ関数「with」とは

Android Studio3.1以降のRecycler Viewの自動生成コードでもよく見かけるようになったスコープ関数「with」ですが、

本当にざっくりとその使い方を理解しようとすると、

  • オブジェクトの初期化や設定に使う「apply」と同じようなもので
  • 「apply」と違って、戻り値を自分で指定できる(applyは呼び出し元(レシーバー)自身を返す)

ということでいいのではないかと思います。

 

<applyの例:レシーバー自身(この場合はIntent)を返す>

val intent = Intent(this@WordListActivity, EditActivity::class.java).apply {
            putExtra(getString(R.string.intent_key_question), strSelectedQuestion)   //問題
            putExtra(getString(R.string.intent_key_answer), strSelectedAnswer)   //こたえ
            putExtra(getString(R.string.intent_key_position), position)  //行番号
            putExtra(getString(R.string.intent_key_status), getString(R.string.status_change))   //ステータス
        }

 

<withの例:関数の処理結果(≠レシーバー)を返す>

with(view) {
                layoutManager = when {
                    columnCount <= 1 -> LinearLayoutManager(context)
                    else -> GridLayoutManager(context, columnCount)
                }
                adapter = MyListRecyclerViewAdapter(DummyContent.ITEMS, listener)
            }

(詳しくは下の動画で解説していますので、よろしければご覧ください)

こんな記事も読まれています

みんプロにかける想い

  1. プログラミングは手段の1つに過ぎない(目的は自分のアイデアを形にすること)

  2. プログラミングはみんなのもの!(プログラミングの醍醐味である「楽しさ」を伝えたい)

  3. ぼくが別に言う必要のない挫折の黒歴史をあえてさらけ出している理由(自分の中にある「ブロック」を外すきっかけにしてほしい)

  4. こんな無駄な苦労をするのはぼくで最後にしたい(ぼくがプログラミング講座をはじめたわけ)

  5. プログラミングを通じて「やわらかい世の中」を作りたい(ぼくがプログラミング講座をやっている本当の理由②)

みんプロ作成アプリ




みんプロ代表の黒歴史


TOP