Несколько аргументов в основном относятся к обязательным параметрам. Нет ничего плохого в них.
Если у вас есть дополнительные параметры, он становится сложным. Если один из них полагается на других, так что у них есть определенный порядок (например, четвертый нуждается в третьем), вы все равно должны использовать несколько аргументов. Практически все родные EcmaScript и DOM-методы работают так. Хорошим примером является метод open
XMLHTTPrequests , где последние 3 аргумента являются необязательными - правило похоже на «без пароля без пользователя» (см. Также MDN docs ).
Опционные объекты пригождаются в двух случаях:
undefined
s). В вашем случае я рекомендую map(nodeList, callback, options)
. nodelist
и callback
требуются, остальные три аргумента происходят только изредка и имеют разумные значения по умолчанию.
Другим примером является JSON.stringify
. Вы можете использовать параметр space
без передачи функции replacer
- тогда вы должны вызвать …, null, 4)
. Объект arguments мог быть лучше, хотя его не очень разумно только для 2 параметров.
Если кто-то ищет, как сделать в работе в конвейерном сценарии Jenkins, необходимо будет создать отдельный метод с @NonCPS
аннотация для этого:
@NonCPS
def getSorted(def mapSizeMap){
mapSizeMap.sort(){ a, b -> b.value <=> a.value }
}
И затем называют его из конвейерного сценария.
def sortedMapZoneMap = getSorted(mapZonesMap)
можно, конечно, применить "чувствительную к регистру" логику на вершину.