Здесь показаны различия между двумя версиями данной страницы.
Both sides previous revision Предыдущая версия Следущая версия | Предыдущая версия | ||
help:tuples [2024/10/10 17:48] aleks_versus проба обновления до 5.9.0 |
help:tuples [2024/12/01 09:48] (текущий) aleks_versus |
||
---|---|---|---|
Строка 161: | Строка 161: | ||
</sxh> | </sxh> | ||
- | ===== Функции, работающие с кортежами ===== | + | ===== Функции и операторы, работающие с кортежами ===== |
* ''%%LEN([%кор])%%'' - возвращает число элементов кортежа ''%%[%кор]%%''. <sxh qsp> | * ''%%LEN([%кор])%%'' - возвращает число элементов кортежа ''%%[%кор]%%''. <sxh qsp> | ||
Строка 181: | Строка 181: | ||
* ''%%$STR([%кор])%%'' - переводит кортеж в строку. <sxh qsp> | * ''%%$STR([%кор])%%'' - переводит кортеж в строку. <sxh qsp> | ||
*pl $STR([5,7,'a']) &! на экране увидим [5,7,'a'] | *pl $STR([5,7,'a']) &! на экране увидим [5,7,'a'] | ||
+ | </sxh> | ||
+ | * ''%%ARRPACK([$имя_массива], [#начальный_индекс], [#количество])%%'' - упаковывает массив ''[$имя_массива]'' в кортеж. | ||
+ | * Можно указать, сколько элементов ''[#количество]'' упаковать в кортеж, и с какого элемента ''[#начальный_индекс]'' начинать упаковку. Параметры опциональны, по умолчанию ''[#начальный_индекс]'' равен нулю, а ''[#количество]'' соответствует размеру массива. | ||
+ | * Функция возвращает кортеж с упакованными значениями. | ||
+ | * Примеры: <sxh qsp> | ||
+ | LOCAL type, name = ARRPACK('args') | ||
+ | ! Из массива char берём пять элементов, начиная со второго, и упаковываем в кортеж: | ||
+ | %unit[123] = ARRPACK('char', 2, 5) | ||
+ | </sxh> | ||
+ | * ''%%UNPACKARR [$имя_массива], [%кортеж], [#начальный_индекс], [#количество]%%'' - распаковывает значения из кортежа ''[%кортеж]'' в массив ''[$имя_массива]''. | ||
+ | * Можно указать, сколько элементов ''[#количество]'' распаковать, и с какого элемента ''[#начальный_индекс]'' начинать распаковку. Параметры опциональны, по умолчанию ''[#начальный_индекс]'' равен нулю, а ''[#количество]'' соответствует длине кортежа. | ||
+ | * Пример: <sxh qsp> | ||
+ | UNPACKARR 'A', ['тест','нескольких','значений',67, ['вложенный кортеж']] | ||
+ | ! $A[0] будет содержать 'тест' | ||
+ | ! $A[1] будет содержать 'нескольких' | ||
+ | ! $A[2] будет содержать 'значений' | ||
+ | ! A[3] будет содержать 67 | ||
+ | ! %A[4] будет содержать ['вложенный кортеж'] | ||
+ | </sxh> | ||
+ | * оператор позволяет извлечь из кортежа одно значение по указанному индексу: <sxh qsp> | ||
+ | %tpl = ['тест','нескольких','значений',67, ['вложенный кортеж']] | ||
+ | UNPACKARR 'A', %tpl, 3, 1 | ||
+ | ! в A будет 67 | ||
</sxh> | </sxh> | ||