[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)
            }

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

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

GAMBO(願望) 願望実現・目標達成の
17秒 / 68秒ワーク
GAMBO(願望) 引き寄せ難民だったぼくの挫折経験から生まれた誰でもできる願望実現サポートアプリ。かの有名な17秒/68秒ワークを独自の視覚化メソッドで簡単実践。
App Store / Google Play 詳しく見る →
Meiso(瞑想) 鐘音と自然音で
5分からのマインドフルネス
Meiso(瞑想) 初心者でも“迷わず続けられる”ことにこだわった、完全無料の瞑想アプリ。画面のガイドに従うだけで呼吸のリズムが整い、最短5分から瞑想を実践できます。
App Store / Google Play 詳しく見る →
小学生からの英検®単語 A ふりがな・音声付き
英検単語1日5分トレーニング
小学生からの英検®単語 ありそうでなかった!ふりがな付き英検®単語トレーニングアプリ!1日たった5分!スキマ時間を活用して、英検®頻出単語を効率的に習得。お子様の一人学習にも安心設計。
App Store / Google Play 詳しく見る →
オボエルンジャー レトロゲームで
nバック脳トレ
オボエルンジャー 科学的脳力開発法「Nバック課題」をファミコン風8bitレトロゲームにアレンジした新感覚脳トレアプリ。記憶力・感情コントロール力・集中力の向上に。
App Store / Google Play 詳しく見る →
ゴイコイコイ 超高速フラッシュカードで
語彙習得
ゴイコイコイ 日常語1400語を視覚的に学べる、高速読み上げフラッシュカード式の語彙トレーニングアプリ。知育教室で行われるフラッシュカード学習を、家庭で“手軽に・安価に・正確に”再現。
App Store / Google Play 詳しく見る →

TOP