Seven More Languages in Seven Weeks (读书笔记):Lua
2016-03-30 15:12
441 查看
Lua
Day 1字符串拼接:"Hello" .. " world"
REPL:> =(function(num) return 3 * num end)(2)
函数传参:nil填充
‘命名’参数:function f(table) ... end; ==> f{a=1,b="2"}
elseif
for i=1,5,2 do ... end
Day 2
迭代table:for k, v in pairs(t) do result[#result + 1] = k .. ": " .. v end
Metatables
__tostring
__index
__newindex
Prototypes based OO:new = function(self, args...)
setmetatable(obj, self)
self.__index = self
语法糖:table:method() instead of table.method(self)
Coroutines:create/resume/yield
function fibonacci() ... coroutine.yield(m) ...
generator = coroutine.create(fibonacci)
succeeded, value = coroutine.resume(generator)
Day 3:‘动态语言’vs‘脚本语言’
lua_State* L = luaL_newstate();
luaL_openlibs(L);
luaL_dostring(L, "print('Hello world!')"); //<---
lua_close(L);
lua_pushcfunction(L, midi_send);
➤lua_setglobal(L, "midi_send");
int midi_send(lua_State* L){
double status = lua_tonumber(L, -3); //第一个参数?栈顶(最后一个参数)是-1
字符串匹配:local letter, octave, value = string.match(s, "([A-Gs]+)(%d+)(%a+)") //?奇怪的语法
相关文章推荐
- 详解Lua中的表的概念及其相关操作方法
- Lua编程示例(二):面向对象、metatable对表进行扩展
- 把Lua编译进nginx步骤方法
- Lua脚本自动生成APK包
- Lua中的元表(metatable)、元方法(metamethod)详解
- Lua中的metatable介绍
- Lua中ipair和pair的区别
- Lua中的函数精讲笔记
- 浅谈Lua的面向对象特性
- 详解Lua中的变量相关知识点
- Lua脚本语言入门笔记
- Lua脚本调用外部脚本
- 详解Lua中的if语句的使用方法
- Lua中调用函数使用点号和冒号的区别
- Lua中的闭合函数、非全局函数与函数的尾调用详解
- Lua中强大的元方法__index详解
- Lua中调用C++函数示例