たかぎとねこの忘備録

プログラミングに関する忘備録を自分用に残しときます。マサカリ怖い。

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

fix potential bugs in ifModifier by tkdgusl94 · Pull Request #903 · DroidKaigi/conference-app-2022 · GitHub

このbuilder: Modifier.() -> Modifierをどう解釈すればよいのかわからなかったので、深夜にツイートしてみた。

すると、@ji_sungbinさんからリプが!

なので、ここでのbuilderModifierの拡張関数であり、Modifierを返り値として返す関数という意味らしい。

たまにこういう記述を見かける時があってその都度思考停止してたから、スッキリした。

追伸

Android界隈はとても優しいエンジニアの方が多い印象があって、本当に楽しいし大好き😊