Merge pull request #451 from Xertis/patch-4

Added new extensions for tables and math
This commit is contained in:
MihailRis
2025-02-12 03:10:48 +03:00
committed by GitHub
2 changed files with 184 additions and 0 deletions
+65
View File
@@ -52,6 +52,47 @@ table.shuffle(t: table) -> table
Перемешивает значения в таблице.
```lua
table.merge(t1: table, t2: table) -> table
```
Добавляет в таблицу **t1** значения из таблицы **t2**. Если в таблице **t2** присутствует ключ из **t1**, то значение ключа не будет изменено.
```lua
table.map(t: table, func: function(indx, value) ) -> table
```
Проходится по таблице и применяет ко всем её элементам **func**, которая возвращает новое значение элемента.
```lua
table.filter(t: table, func: function(indx, value) ) -> table
```
Проходится по таблице с помощью **func**, которая возвращает **true** если элемент надо сохранить и **false**, если его надо удалить.
```lua
table.set_default(t: table, key: number | string, default: any) -> any | default
```
Позволяет безопасно получать значение по указанному ключу. Если ключ существует в таблице, метод вернет его значение. Если ключ отсутствует, метод установит его со значением **default** и вернет его.
```lua
table.flat(t: table) -> table
```
Возвращает "плоскую" версию исходной таблицы.
```lua
table.deep_flat(t: table) -> table
```
Возвращает глубокую "плоскую" версию исходной таблицы.
```lua
table.sub(arr: table, start: number | nil, stop: number | nil) -> table
```
Возвращает обрезанную версию таблицы с индекса **start** до индекса **stop** включительно, при этом пары ключ-значение не сохраняются в новой таблице. При значениях **nil** начинает с **1** и заканчивает **#arr** соответственно.
```lua
table.tostring(t: table) -> string
@@ -139,6 +180,24 @@ string.escape(str: string) -> string
Экранирует строку. Является псевдонимом `utf8.escape`.
```lua
string.pad(str: string, size: number, [опционально] char: string) -> string
```
Добавляет **char** слева и справа от строки, пока её размер не будет равен **size**. По стандарту **char** равен символу пробела
```lua
string.left_pad(str: string, size: number, [опционально] char: string) -> string
```
Добавляет **char** слева от строки, пока её размер не будет равен **size**. По стандарту **char** равен символу пробела
```lua
string.right_pad(str: string, size: number, [опционально] char: string) -> string
```
Добавляет **char** справа от строки, пока её размер не будет равен **size**. По стандарту **char** равен символу пробела
## Расширения для math
```lua
@@ -165,6 +224,12 @@ math.round(num: number, [опционально] places: num) -> number
Возвращает округлённое значение num до указанного количества знаков после запятой places.
```lua
math.sum(x: number, ... | t: table) -> number
```
Возвращает сумму всех принимаемых аргументов. Если в качестве аргумента была передана таблица, метод вернёт сумму всех её элементов.
## Дополнительные глобальные функции
В этом же скрипте также определены и другие глобальные функции которые доступны для использования. Ниже их список