通过Kotlin来构建内部DSL,所需的前置知识点有:
如果lambda表达式作为函数的最后一个参数,可以把放到括号外
lambda表达式&高阶函数
带接收者的lambda表达式(对lambda表达式的拓展)
拓展函数和拓展属性
因此假设我们都了解并能熟练使用上面的知识点,那么Kotlin构建DSL也就成功了一半,我们来看一个例子:
我有一个书房,书房里有一张桌子和装有若干书籍的书柜
用dsl表达效果如下:
上述实现代码如下:
参考资料
Kotlin实战
领取专属 10元无门槛券
私享最新 技术干货