首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Kotlin Builder与Constructor

Kotlin Builder与Constructor
EN

Stack Overflow用户
提问于 2017-06-23 06:05:18
回答 1查看 269关注 0票数 7

我对Kotlin非常陌生,我遇到了这两种表达方式:

代码语言:javascript
运行
复制
Car(name = "CarName")

代码语言:javascript
运行
复制
car { 
  name = "CarName"
}

关于什么时候应该使用哪一种方法,有什么指导方针吗?医生们在这一点上似乎不太清楚。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-23 06:34:40

第二个片段是如何为您的域构建DSL的一个示例。对于这种简单的情况,创建DSL有点过分,但是当对象变得更大时,设计DSL可能会更干净。

事实上,使用DSL样式创建简单的实例甚至可能令人困惑。

例如,DSLs文档显示了以下代码:

代码语言:javascript
运行
复制
fun result(args: Array<String>) =
    html {
        head {
            title {+"XML encoding with Kotlin"}
        }
        body {
            h1 {+"XML encoding with Kotlin"}
            p  {+"this format can be used as an alternative markup to XML"}

            // an element with attributes and text content
            a(href = "http://kotlinlang.org") {+"Kotlin"}

            // mixed content
            p {
                +"This is some"
                b {+"mixed"}
                +"text. For more see the"
                a(href = "http://kotlinlang.org") {+"Kotlin"}
                +"project"
            }
            p {+"some text"}

            // content generated by
            p {
                for (arg in args)
                    +arg
            }
        }
    }

这是您何时可以使用DSL的一个很好的例子:语法为您创建模型的方式提供了一个清晰的结构。另一方面,安科提供了一个DSL来定义UI。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44714149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档