Введение в построители в Kotlin
Построитель - это функция, которая принимает блок и возвращает готовое значение. Внутри блока шаги записывают как короткие команды, а снаружи остается один результат без лишних временных переменных.
Типичный прием - передать лямбду с получателем
StringBuilder. Компилятор подставляет
свежий буфер, а в блоке доступны его методы через
this без повторения имени буфера на каждой
строке.
Объявление сводится к созданию буфера, вызову блока
на нем и возврату текста. Параметр блока имеет тип
StringBuilder.() -> Unit:
fun composeLabel(block: StringBuilder.() -> Unit): String {
val buffer = StringBuilder()
buffer.block()
return buffer.toString()
}
Вызов читается как мини-язык: в фигурных скобках
идут команды append, а функция сама
собирает строку:
fun main() {
val label = composeLabel {
append("[")
append("draft")
append("]")
}
println(label)
}
Такой стиль удобен, когда результат складывается из нескольких однотипных шагов. Снаружи виден только смысл разметки, а детали буфера спрятаны внутри функции-построителя.