Kotlinのスコープ関数であるwithの使い方
Androidで使用する例として、findViewByIdなどインスタンスを返す
関数でwithを使うとそのインスタンスのオブジェクトに対して、
直接アクセスすることができます。
インスタンスを生成したのち、アクセスする場合
1 2 3 |
var titleText = rowView.findViewById<TextView>(R.id.title) titleText.text = "title" titleText.visibility = View.VISIBLE |
Withを使うケース
1 2 3 4 |
with(rowView.findViewById<TextView>(R.id.title)) { text = playList."title" visibility = View.VISIBLE } |
例の様にTextViewのメンバーにアクセスすることができます。
Withの定義
1 2 3 4 5 |
/** * Calls the specified function [block] with the given [receiver] as its receiver and returns its result. */ @kotlin.internal.InlineOnly public inline fun <T, R> with(receiver: T, block: T.() -> R): R = receiver.block() |