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
...
**/
我们想了解一些遗留的 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
...
**/