correction table.slice & adding get_default
This commit is contained in:
parent
17ce49bdf1
commit
e106a31d82
@ -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** соответственно.
|
||||
|
||||
@ -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 = {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user