《Lua程序设计第4版》读书笔记--闭包、模式匹配、日期和时间

第一类值
        可以将某个函数保存到变量中(全局变量和局部变量)或表中
        也可以将某个函数作为参数传递给其他函数
        还可以将某个函数作为其他函数的返回值返回
        例:
            a = {p = print}       -- 'a.p'指向'print'函数
            a.p("Hello World")  -->Hello World              
 
非全局函数
        local    function f(params)
            body
        end
 
词法定界
        一个被其他函数B包含的函数A时,被包含的函数A可以访问包含其的函数B的所有局部变量
        例
 
 
模式匹配相关函数
        Lua语言没有POSIX正则表达式,也没有使用Perl正则表达式
        
        函数string.find  有两个可选参数,第3个参数是一个索引,说明从目标字符串哪个位置开始,返回开始位置的索引和结束位置的索引
        例
            s = "hello world"
  •             i,  j = string.find(s, "hello")
            
        函数string.match 返回的是目标字符串与模式相匹配的那部分子串
         例:print(string.match ("hello world", "hello")) --> hello
 
        函数string.gsub 有3个必选参数:目标字符串、模式和替换字符串
            例:s = string.gsub("Lua is cute","cute", "great")
 
        函数string.gmatch 返回一个函数,通过返回的函数可以遍历一个字符串中所有出现的指定模式
        
        Lua中使用'%'作为转义符
            .         任意字符
            %a     字母
            %c     控制字符
            %d     数字
            %g     除空格外的可打印字符
            %l      小写字母
            %p     标点符号
            %s      空白字符
            %u      大写字母
            %w     字母和数字
            %x      十六进制数字
 
    日期和时间
  • 数字表示,通常是一个整型数
  •  日期表,year、month、day、hour、min、sec、wday、yday、isdst
 
        os.time()返回以数字形式返回当前的时间戳, 以一个日期表作为参数调用函数 os.time,那么该函数会返回对应的时间戳
        例:
            os.time()     --1600312802
            os.time({year=2015, month=8, day=15, hour=12, min=45, sec=20})
            --> 1439653520
    
       os.date() 格式化时间
 
        %a 星期几的简写(例如, Wed)
        %A 星期几的全名(例如, Wednesday)
        %b 月份的简写(例如, Sep)
        %B 月份的全名(例如, September
        %c 日期和时间(例如, 的/ 16/98 23: 48: 10)
        %d 一个月中的第 16) [01 - 31]
        %H    24 小时制中的小时数(23 [00- 23]
        %I    12 小时制中的小时数(11) [01 - 12]
        %j    一年中的 259) [001- 365]
        %m 月份(09) [01 - 12]
        %M 分钟(48 [00- 59]
        %p am pm pm
        %S    秒数(10) [00- 60]
        %w 星期( [0-6 =Sunday- Saturday]
        %W 一年中的第几周(37 [00- 53]
        %x 日期(例如, 09/16/98)
        %X 时间(例如 23: 48: 10)
        %y 两位数的年份(98) [00-99]
        %Y 完整的年份(1998
        %z 时区(例如, 0300)
        %% 百分号
 
        例:print(os.date("%Y-%m-%d %H:%M:%S", os.time()))
 
    os.difftime计算两个时间的差值,返回秒为单位返回两个指定数字
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值