diff --git a/doc/ru/scripting/extensions.md b/doc/ru/scripting/extensions.md index cce639ec..c81510a2 100644 --- a/doc/ru/scripting/extensions.md +++ b/doc/ru/scripting/extensions.md @@ -76,6 +76,12 @@ table.set_default(t: table, key: number | string, default: any) -> any | default Позволяет безопасно получать значение по указанному ключу. Если ключ существует в таблице, метод вернет его значение. Если ключ отсутствует, метод установит его со значением **default** и вернет его. +```lua +table.get_default(t: table, key: number | string, default: any) -> any | default +``` + +Как и set аналог, позволяет безопасно получать значение по указанному ключу. Если ключ существует в таблице, метод вернет его значение. Если ключ отсутствует, метод вернёт значение **default** **без** установки нового значения в таблицу. + ```lua table.flat(t: table) -> table ``` @@ -89,7 +95,7 @@ table.deep_flat(t: table) -> table Возвращает глубокую "плоскую" версию исходной таблицы. ```lua -table.slice(arr: table, start: number | nil, stop: number | nil) -> table +table.sub(arr: table, start: number | nil, stop: number | nil) -> table ``` Возвращает обрезанную версию таблицы с индекса **start** до индекса **stop** включительно, при этом пары ключ-значение не сохраняются в новой таблице. При значениях **nil** начинает с **1** и заканчивает **#arr** соответственно. diff --git a/res/scripts/stdmin.lua b/res/scripts/stdmin.lua index fba17a53..107518ec 100644 --- a/res/scripts/stdmin.lua +++ b/res/scripts/stdmin.lua @@ -169,6 +169,14 @@ function table.set_default(t, key, default) return t[key] end +function table.get_default(t, key, default) + if t[key] == nil then + return default + end + + return t[key] +end + function table.flat(t) local flat = {} @@ -197,17 +205,18 @@ function table.deep_flat(t) return flat end -function table.slice(arr, start, stop) - local sliced = {} +function table.sub(arr, start, stop) + local res = {} start = start or 1 stop = stop or #arr for i = start, stop do - table.insert(sliced, arr[i]) + table.insert(res, arr[i]) end - return sliced + return res end + ---------------------------------------------- local pattern_escape_replacements = {