Seven More Languages in Seven Weeks (读书笔记):Lua

Lua

  1. Day 1
    1. 字符串拼接:"Hello" .. " world"
    2. REPL:> =(function(num) return 3 * num end)(2)
    3. 函数传参:nil填充
    4. ‘命名’参数:function f(table) ... end; ==> f{a=1,b="2"}
    5. elseif
    6. for i=1,5,2 do ... end
  2. Day 2
    1. 迭代table:for k, v in pairs(t) do result[#result + 1] = k .. ": " .. v end
    2. Metatables
      1. __tostring
      2. __index
      3. __newindex
      4. Prototypes based OO:new = function(self, args...)
        1. setmetatable(obj, self)
        2. self.__index = self
      5. 语法糖:table:method() instead of table.method(self)
    3. Coroutines:create/resume/yield
      1. function fibonacci() ... coroutine.yield(m) ...
      2. generator = coroutine.create(fibonacci)
      3. succeeded, value = coroutine.resume(generator)
  3. Day 3:‘动态语言’vs‘脚本语言’
    1. lua_State* L = luaL_newstate();
      1. luaL_openlibs(L);
      2. luaL_dostring(L, "print('Hello world!')"); //<---
      3. lua_close(L);
    2. lua_pushcfunction(L, midi_send);
      1. ➤lua_setglobal(L, "midi_send");
    3. int midi_send(lua_State* L){
      1. double status = lua_tonumber(L, -3); //第一个参数?栈顶(最后一个参数)是-1
    4. 字符串匹配:local letter, octave, value = string.match(s, "([A-Gs]+)(%d+)(%a+)") //?奇怪的语法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值