--[[
函数是第一类值
与数值和字符串等具有相等权限(可以到处传递)
]]
-- 表排序(有点像java lamada表达式)
network = {
{name = "grade1",IP = "192.168.1.1"},
{name = "grade2",IP = "192.168.1.2"},
{name = "grade3",IP = "192.168.1.3"},
}
table.sort(network,function(a,b) return (a.name > b.name) end)
-- 非全局函数
lib = {}
function lib.foo(x,y) return x + y end -- 等同于 lib.foo = function(x,y) return x + y end
function lib.goo(x,y) return x - y end -- 等同于 lib.goo = function(x,y) return x - y end
-- 局部函数(类似java私有方法)
local fact = function(n)
if n < 0 then
return 0
if n == 0 then
return 1
else
return n * fact(n - 1)
end
-- 使用do end 限制局部变量作用范围
do
local oldValue = 66
local k = math.pi / oldValue
print(k)
end
-- 日期时间 yday 一年的第几天,wday一周的星期几,isdst是否是夏令时
{year = 1998, math = 9, day = 16, hour = 23, min = 48, sec = 10, yday = 259, wday = 4, isdst = false}
os.time() -- 当前时间的时间戳,单位秒
-- 创建指定时间(不提供时分秒 默认是12:00:00)
os.time({year = 2020, math = 9, day = 16, hour = 23, min = 48, sec = 10})
print(os.date("*t",906000490)) -- 返回的是{year = 1998, math = 9, day = 16, hour = 23, min = 48, sec = 10, yday = 259, wday = 4, isdst = false}
print(os.date("%Y-%m-%d",906000490)) -- 时间戳转指定格式时间 1998-09-16
print(os.date("%Y-%m-%dT%H:%M:%S",906000490)) -- 时间戳转指定格式时间 1998-09-16T23:48:10
t = os.date("*t",ostime(t))
print(t.day,t.month) -- 获取时间内指定参数