Инструменты пользователя

Инструменты сайта


jenkins:groovy

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
jenkins:groovy [2024/10/05 05:01]
admin создано
jenkins:groovy [2024/12/01 12:15] (текущий)
admin
Строка 1: Строка 1:
 ===== Groovy ===== ===== Groovy =====
 +[[https://www-tutorialspoint-com.translate.goog/groovy/index.htm?_x_tr_sl=en&_x_tr_tl=ru&_x_tr_hl=ru&_x_tr_pto=sc]]\\ 
 +[[https://www.baeldung.com/groovy-lists]]\\
  
 <details> <details>
Строка 94: Строка 95:
   print it   print it
 } }
 +</code>
  
  
 +<code groovy>
 </code> </code>
 +</details>
  
  
 +
 +<details>
 +<summary>:!: Строки </summary>
 +В одинарных кавычках - Java Strings, внутри можно заключить двойные кавычки\\
 +В двойных кавычках - Groovy Strings (GStrings), как минимум, в такою строку можно подставить переменную, "внутри - ${}"\\
 +
 +<code bash>
 +</code>
 +</details>
 +
 +
 +
 +<details>
 +<summary>:!: Списки </summary>
 +Объявляются путем перечисления элементов в квадратных скобках\\
 +
 +  * **add()/pop()** - добавляет в конец/удаляет с конца
 +  * **contains()** - true/false, содержится ли элемент
 +  * **plus()/munis()** - создает новый список добавляя/удаляя указанные элементы
 +  * **remove()** - удаляет в указанной позиции, удаляет в том же списке
 +  * **revers()/sort()/size()**
  
 <code groovy> <code groovy>
 +def somw_list = [1, 2, 3, 4]
 +def empty_list = []
 +
 +// Обращение
 +some_list[0]
 +
 +// Добавление новых элементов
 +some_list[5] = 6
 +some_list << 7 << 8
 +some_list += [9, 19]
 +
 +// Совместно с range
 +some_list[1..3] // срезка списка
 +some_list[2..4] = [12, 13, 14]
 +some_list[1, 2, 3..7, 8] // получение подсписка
 </code> </code>
  
 +
 +Операции над списками
 +<code groovy>
 +// Перебор
 +for (e in some_list) {
 +  println e
 +}
 +
 +some_list.each{ println it }
 +
 +some_list.eachWithIndex{ it, i-> println "$i : $it" }
 +</code>
 +
 +
 +Фильтрация
 +<code groovy>
 +assertTrue(some_list.findAll{ it>3 } == 4)
 +
 +assertTrue(some_list.grep(Number) == [2,3,1,4,5,7])
 +
 +some_list.unique()
 +</code>
 +
 +
 +
 +
 +Типы списков. По умолчанию **ArrayList**, можно объявить например **LinkedList**, **HashSet** или обычный массив Java\\
 +<code groovy>
 +def linked_list = [1, 2, 3] as LinkedList
 +def set = [1, 2, 3] as Set
 +def array = [1, 2, 3] as Integer[]
 +</code>
 +
 +
 +**Spread Operator**\\
 +Вызов метода для каждого элемента списка\\
 +<code groovy>
 +[1,2,3]*.plus(5) // каждый элемент увеличится на 5
 +</code>
 </details> </details>
 +
 +
 +
 +
 +<details>
 +<summary>:!: Maps</summary>
 +Ассоциативный массив, словарь\\
 +  * **keySet()/values()** - набор ключей/значений в словаре, возвращает в виде списка
 +  * **size()** 
 +  * **put(Object key, Object value)** - вкставка пары "ключ-значение", существующий ключ затирается
 +  * **boolean containsKey(Object key)** - поиск указаного ключа, возвращает true/false
 +  * **Object get(Object key)** - возвращает значение указанного ключа либо "Null"
 +
 +<code groovy>
 +def some_map = ['a':1, 'b':2]
 +def some_map = [:] // пустой
 +
 +// Доступ
 +some_map['a']
 +come_map.a
 +
 +some_map['a'] = 2
 +come_map.a = 2 // изменение как поля (?)
 +</code>
 +</details>
 +
 +
 +<details>
 +<summary>:!: Аргументы командной строки </summary>
 +
 +<code groovy>
 +println args
 +println args.length
 +println args.getClass()
 +
 +println args[0]
 +println args[0].length()
 +println args[0].getClass()
 +
 +
 +if ((args.length == 0) || (args[0].length() == 0)) {
 +  println "args must be set. error"
 +  System.exit(1)
 +}
 +
 +println "this good - '${args[0]}'"
 +
 +///
 +/// вывод
 +/usr/bin/groovy grov.groovy "ddd"
 +
 +[ddd]
 +1
 +class [Ljava.lang.String;
 +
 +ddd
 +3
 +class java.lang.String
 +
 +this good - 'ddd'
 +</code>
 +</details>
 +
 +
 +
 +
 +<details>
 +<summary>:!: </summary>
 +
 +<code bash>
 +</code>
 +</details>
 +
jenkins/groovy.1728104474.txt.gz · Последнее изменение: 2024/10/05 05:01 — admin