7

我们想了解一些遗留的 job-dsl 脚本,但不知道“斜杠运算符”在这种情况下是什么意思(因为它不能是除法):

def command = (shells.first() / command)

我们试图在几本 Groovy 书籍中查找它,但只找到了一个简单的解决方案,即它意味着“除法”。

4

1 回答 1

10

这是一个 XML Node操作,返回一个 XML 节点的子节点,如果它不存在则创建它。可能command是您的第一个节点下的shells节点。

Groovy 允许运算符重载,因此它相同的“除法”运算符,只是重新定义了一些。这在其他允许运算符重载的语言中很常见(但也有争议),但确实允许更丰富的 DSL。

快速浏览了JobDSL 源代码(旧副本)后,似乎他们正在使用一个类来做这件事NodeEnhancement,尤其是这个 JavaDoc:

/**
Add div and leftShift operators to Node.
div - Will return the first child that matches name, and if it doesn't exists, it creates
...
**/
于 2015-01-26T16:28:56.183 回答