Groovy 斜杠运算符(Jenkins job-dsl)

Groovy slash operator (Jenkins job-dsl)

我们想了解一些遗留的 job-dsl 脚本,但不知道 "slash operator" 在此上下文中的含义(因为它不能是除法):

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

我们试图在几本 Groovy 书中查找它,但只找到了它意味着 'division' 的简单解决方案。

是XMLNode操作,return一个XML节点的子节点,不存在则创建。可能是第一个 shells 节点下的 command 节点。

Groovy 允许 operator overloading,所以它 相同的 "division" 运算符,只是重新定义了一些。这在允许运算符重载的其他语言中很常见(但也有争议),但确实允许更丰富的 DSL。

快速浏览了 JobDSL source(的旧副本)后,他们似乎正在使用 class 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
...
**/