之前写过不少关于 Lua 的 Utils 代码,不少都挺实用的,但是平时使用中却又总是觉得零散,遂而收集整理了一个 repo,希望可以持续完善,有兴趣的朋友可以看一看,欢迎 PR ~
以下内容仅为当前 repo 的 readme 内容,后面持续更新:
lua utils
desc
this is a simple lua util functions collection for easy usage and intergration
function reference(TODO)
table utils
slice(source, first, last, step)
desc :
params :
- source :
- first :
- last :
- step :
return :
map(source, handler)
desc :
params :
return :
mapKeys(source, handler)
desc :
params :
return :
flatMap(source, handler)
desc :
params :
return :
shuffle(source)
desc :
params :
return :
filter(source, handler)
desc :
params :
return :
filterKeys(source, handler)
desc :
params :
return :
filterKeysMap(source, handler)
desc :
params :
return :
omitBy(source, handler)
desc :
params :
return :
without(source, element)
desc :
params :
return :
compact(source)
desc :
params :
return :
reduce(source, handler, init)
desc :
params :
return :
all(source, handler)
desc :
params :
return :
any(source, handler)
desc :
params :
return :
reverse(source)
desc :
params :
return :
invert(source)
desc :
params :
return :
keyBy(source, handler)
desc :
params :
return :
groupBy(source, handler)
desc :
params :
return :
merge(target, …)
desc :
params :
return :
values(source)
desc :
params :
return :
keys(source)
desc :
params :
return :
pick(source, keys)
desc :
params :
return :
entries(source)
desc :
params :
return :
find(source, handler)
desc :
params :
return :
findKey(source, handler)
desc :
params :
return :
includes(source, item)
desc :
params :
return :
keyOf(source, value)
desc :
params :
return :
insertMany(target, items)
desc :
params :
return :
getLength(source)
desc :
params :
return :
assign(target, …)
desc :
params :
return :
defaults(target, …)
desc :
params :
return :
isSubset(a, b)
desc :
params :
return :
deepEqual(a, b)
desc :
params :
return :
shallowEqual(a, b)
desc :
params :
return :
append(…)
desc :
params :
return :
pop(source)
desc :
params :
return :
push(source, …)
desc :
params :
return :
shift(source)
desc :
params :
return :
unshift(source, …)
desc :
params :
return :
indexOf(source, value, from)
desc :
params :
return :
uniq(source)
desc :
params :
return :
seal(source)
desc :
params :
return :
readonly(source)
desc :
params :
return :
dump(source, depth, indent)
desc :
dump source table to string with limited depth(default is 32) and indent(default is 4) space
params :
- source : source table
- depth : limited depth
- indent : indent space
return :
dump string of source table
clone(source, shallow)
desc :
params :
return :
checkEqual(a, b, ignore_mt)
desc :
params :
return :
orderPairs(source, sort_comp)
desc :
params :
return :
string utils
trim(str)
desc :
params :
return :
trimLeft(str)
desc :
params :
return :
trimRight(str)
desc :
params :
return :
startsWith(str, start)
desc :
params :
return :
endsWith(str, ending)
desc :
params :
return :
leftPad(str, length, character)
desc :
params :
return :
rightPad(str, length, character)
desc :
params :
return :
split(str, delim)
desc :
params :
return :
formatParam(str, …)
desc :
params :
return :
math utils
clamp(num, low, high)
desc :
clamp num to range [low, high], low should <= high
params :
- num : target num
- low : left range
- high : right range
return :
clamped num
clamp01(num)
desc :
clamp num to range [0, 1]
params :
return :
clamped num
inRange(num, low, high)
desc :
params :
return :
inRange01(num)
desc :
params :
return :
round(num)
desc :
params :
return :
usage(TODO)
local tu = require("utils.table_utils")
print(tu.dump({ 1, 2, 3, key = "value" }))
-- output :
--[[
{
[1] = 1
[2] = 2
[3] = 3
["key"] = "value"
}
--]]
NOTE
util function implementations are depend on base library funcs of Lua(pairs etc.)