7

いくつかの従来の job-dsl スクリプトを理解したいのですが、このコンテキストで「スラッシュ演算子」が何を意味するのかわかりません (除算ではないため)。

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

いくつかのGroovy本で調べてみましたが、「除算」を意味するという簡単な解決策しか見つかりませんでした.

4

1 に答える 1

10

XMLノードのサブノードを返す、または存在しない場合は作成するのは、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 に答える