Groovy Custom сортировать карту по значению

Несколько аргументов в основном относятся к обязательным параметрам. Нет ничего плохого в них.

Если у вас есть дополнительные параметры, он становится сложным. Если один из них полагается на других, так что у них есть определенный порядок (например, четвертый нуждается в третьем), вы все равно должны использовать несколько аргументов. Практически все родные EcmaScript и DOM-методы работают так. Хорошим примером является метод open XMLHTTPrequests , где последние 3 аргумента являются необязательными - правило похоже на «без пароля без пользователя» (см. Также MDN docs ).

Опционные объекты пригождаются в двух случаях:

  • У вас так много параметров, что это запутывает: «Именование» поможет вам, вы надеваете Не нужно беспокоиться о порядке их (особенно если они могут измениться)
  • У вас есть дополнительные параметры. Объекты очень гибкие, и без какого-либо заказа вы просто передаете то, что вам нужно, и ничего больше (или undefined s).

В вашем случае я рекомендую map(nodeList, callback, options). nodelist и callback требуются, остальные три аргумента происходят только изредка и имеют разумные значения по умолчанию.

Другим примером является JSON.stringify . Вы можете использовать параметр space без передачи функции replacer - тогда вы должны вызвать …, null, 4). Объект arguments мог быть лучше, хотя его не очень разумно только для 2 параметров.

13
задан Adrien Be 3 December 2012 в 16:06
поделиться

1 ответ

Если кто-то ищет, как сделать в работе в конвейерном сценарии Jenkins, необходимо будет создать отдельный метод с @NonCPS аннотация для этого:

@NonCPS
def getSorted(def mapSizeMap){
    mapSizeMap.sort(){ a, b -> b.value <=> a.value }
}

И затем называют его из конвейерного сценария.

def sortedMapZoneMap = getSorted(mapZonesMap)

можно, конечно, применить "чувствительную к регистру" логику на вершину.

1
ответ дан 1 December 2019 в 17:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: