Groovy оператор косой черты (Jenkins job-dsl)

Мы хотели бы понять пару устаревших сценариев job-dsl, но не знаем, что означает «оператор косой черты» в этом контексте (поскольку это не может быть деление):

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

Мы пытались найти его в нескольких книгах по Groovy, но нашли только тривиальное решение, что оно означает «деление».


person user1724641    schedule 26.01.2015    source источник


Ответы (1)


Это XML-операция Node для возврата подузла XML. node или создайте его, если он не существует. Вероятно, узел 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
...
**/
person declension    schedule 26.01.2015
comment
Это правильно. Также взгляните на вики Job DSL, в которой объясняются перегруженные операторы для манипулирования XML: github.com/jenkinsci/job-dsl-plugin/wiki/ - person daspilker; 26.01.2015
comment
@daspilker - о, привет :). Еще раз спасибо за отличный проект. - person declension; 26.01.2015
comment
Это потребовало некоторых усилий, чтобы отследить - person niken; 17.08.2016