`builder: Modifier.() -> Modifier`の読み方
DroidKaigi 2022のコードを眺めていると次のような記述にでくわした。
inline fun Modifier.ifTrue(value: Boolean, builder: Modifier.() -> Modifier): Modifier { val modifier = Modifier return then(if (value) modifier.builder() else modifier) }
このbuilder: Modifier.() -> Modifier
をどう解釈すればよいのかわからなかったので、深夜にツイートしてみた。
Kotlinの`builder: Modifier.() -> Modifier`の読み方がわからにゃい・・・Modifierの拡張関数でModifierを返す関数って解釈でいいのかな・・・
— たかぎとねこ (@takagimeow) 2022年11月27日
すると、@ji_sungbinさんからリプが!
そうだね
— 성빈 🌸 (@ji_sungbin) 2022年11月27日
なので、ここでのbuilder
はModifier
の拡張関数であり、Modifier
を返り値として返す関数という意味らしい。
たまにこういう記述を見かける時があってその都度思考停止してたから、スッキリした。
追伸
Android界隈はとても優しいエンジニアの方が多い印象があって、本当に楽しいし大好き😊