最近在看Kotlin,看到DSL部分觉得比较有意思,记录一下自己的理解
最简单的DSL就是各种大括号嵌套,每一个括号提供了一个独立的上下文,在该括号内使用这个上下文提供的api来影响上下文或者产生一些副作用。
Kotlin 天生就对DSL写法有比较好的支持,典型的scoping function: run、with、let、also、apply 就让大括号嵌套在Kotlin中无所不在
编写本文是因为看到了一段几十行的实现DSL的代码,觉得实现很简单,用法很炫酷,值得记录。代码链接在此 https://github.com/nazmulidris/color-console/blob/4d4503e183ab18434a9c86afd5ebdc66744c3451/src/main/kotlin/color_console_log/ColorConsoleLogUtils.kt#L91-L125
阅读全文