6
我是很新,科特林,和我遇到这两种表述的:科特林生成器VS构造
Car(name = "CarName")
和
car {
name = "CarName"
}
有没有什么时候,人们应该任何指引使用? The docs似乎不太清楚这一点。
我是很新,科特林,和我遇到这两种表述的:科特林生成器VS构造
Car(name = "CarName")
和
car {
name = "CarName"
}
有没有什么时候,人们应该任何指引使用? The docs似乎不太清楚这一点。
第二个片段是如何为您的域构建DSL的示例。对于这样的简单情况,创建一个DSL有点矫枉过正,但是当对象变大时,设计一个DSL可能会更清晰。
事实上,使用DSL风格来创建简单的实例可能会令人困惑。
例如,the documentation on DSLs显示下面的代码:
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一个很好的例子:语法使您如何创建模型的清洁结构。 Anko为另一个提供了一个DSL来定义UI的。
也许更像是一个“风格唯一”的问题,邀请意见;但也许Kotlin大师可以给出一个很好的基于事实的答案。 – GhostCat