在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Groovy允许在顶层语句的方法调用的参数周围省略括号。这被称为“命令链”功能。这个扩展的工作原理是允许一个人链接这种无括号的方法调用,在参数周围不需要括号,也不需要链接调用之间的点。 如果一个调用被执行为bcd,这将实际上等价于a(b).c(d)。 DSL或域特定语言旨在简化以Groovy编写的代码,使得它对于普通用户变得容易理解。以下示例显示了具有域特定语言的确切含义。 def lst = [1,2,3,4] print lst 上面的代码显示了使用println语句打印到控制台的数字列表。在域特定语言中,命令将是 - Given the numbers 1,2,3,4 Display all the numbers 所以上面的例子显示了编程语言的转换,以满足领域特定语言的需要。 让我们来看一个简单的例子,我们如何在Groovy中实现DSL - class EmailDsl { String toText String fromText String body /** * This method accepts a closure which is essentially the DSL. Delegate the * closure methods to * the DSL class so the calls can be processed */ def static make(closure) { EmailDsl emailDsl = new EmailDsl() // any method called in closure will be delegated to the EmailDsl class closure.delegate = emailDsl closure() } /** * Store the parameter as a variable and use it later to output a memo */ def to(String toText) { this.toText = toText } def from(String fromText) { this.fromText = fromText } def body(String bodyText) { this.body = bodyText } } EmailDsl.make { to "Nirav Assar" from "Barack Obama" body "How are things? We are doing well. Take care" } 当我们运行上面的程序,我们将得到以下结果 - How are things? We are doing well. Take care 以下需要注意上面的代码实现 -
|
请发表评论