🎨 创建 DSL
📖 什么是 DSL?
**DSL(Domain-Specific Language,领域特定语言)**是为特定领域量身定制的语言。使用 Kotlin 可以创建易读且直观的 API!
💡 基本概念
Lambda 和接收者
// 普通 lambda
fun buildString1(action: () -> String): String {
return action()
}
// 带接收者的 lambda
fun buildString2(action: StringBuilder.() -> Unit): String {
val builder = StringBuilder()
builder.action()
return builder.toString()
}
fun main() {
val result = buildString2 {
append("Hello ") // this.append("Hello ")
append("World!")
}
println(result) // Hello World!
}