lua笔记之userdata】的更多相关文章

1.一直使用框架里封装好的c库,想着自己一点一点的写些例子,学习下,以后需要c库,可以自己写了. 下边是一个简单的userdata的例子--数组操作. newarray.c #include "lua.h" #include "lauxlib.h" #include <stdio.h> #include <stdlib.h> #include <assert.h> #include <string.h> typedef…
[话从这里说起] 在我发表<Lua中的类型与值>这篇文章时,就有读者给我留言了,说:你应该好好总结一下Lua中的function和userdata类型.现在是时候总结了.对于function,我在<Lua中的函数>这篇文章中进行了总结,而这篇文章将会对Lua中的userdata进行仔细的总结.对于文章,大家如果有任何疑议,都可以在文章的下方给我留言,也可以关注我的新浪微博与我互动.学习,就要分享,我期待你的加入. [userdata是啥?] userdata是啥?简单直译就是用户数…
这一段时间看了<programming in lua>中的第28章,看一遍并不是很难,但是只是朦胧的感觉,雾里看花,水中望月.最终还是决定敲出来自己看看,练练手,结果受益不少,也遇到了一些问题,记在这里.自己做一个总结,也希望能帮助和我一样lua的初学者. 1. 书上并没有写清楚对于CAPI的制作和使用内容.主要包括dll的生成,以及使用 (1)dll生成. 直接用vs新建一个dll工程,要记得包含依赖路径.如下图所示,包含你的lua安装路径. 工程名要和库的最终名字一致(默认是一致的).lu…
lua命令: #enter shell lua #excute script file lua xxx.lua lua脚本: #!/usr/local/bin/lua 核心概念: As a extension language, Lua has no notion of  a 'Main’ program: it only works embedded in a host client, called the embedding program or simply the host. The h…
http://lua.2524044.n2.nabble.com/LightUserData-and-metatables-td3807698.html https://www.lua.org/manual/5.3/manual.html#2.4 https://www.lua.org/manual/5.0/manual.html#3.8 "... do you realize that by setting the metatable of a light userdatayou are ac…
闭包 示例一 function newCounter() return function() -- anonymous function i = i + return i end end c1 = newCounter() print(c1()) --> 1 print(c1()) --> 2 示例二 function myPower(x) return function(y) return y^x end end power2 = myPower() power3 = myPower() )…
函数高级特性 像新版c++一样,lua支持lambda表达式.也就是可以在函数内部声明函数.内层的函数可以访问外一层函数的局部变量. 一个函数以及它会访问到的外层函数的变量,称为闭包.这些变量又被称为upvalue. 实际上普通函数也是一种特殊的closure(没有要访问的外层变量). 执行不受信任的代码时,需要一个安全的运行环境,称为"沙盒".例如,沙盒会把文件的读写重定向到安全的地方,或干脆限制某些文件的读写. 递归函数的调用 local fact fact = function(…
今天开始学习Lua,下面把一些重点记下来: 单行注释-- ,多行注释 --[[  .......  --]] Lua中false和nil表示条件判断的假,其余的,包括空字符串,0,都表示真. Lua没有整数,都是浮点数 字符串 Lua字符串不能直接修改,字符串可以用单引号或者双引号引住,反斜杠转义 字符串转数字 print("10" + 1 ) 输出11,而不是输出101(不是数字转字符串) 字符串连接用.. 符号. print(10 . 20) 输出1020,数字先转成字符串,再连接…
表据说是LUA的核, 呵呵, 看例子吧, 看上去, 跟java的list很像, 又有点像json: a = {} -- create a table and store its reference in `a' k = "x" a[k] = 10 -- new entry, with key="x" and value=10 a[20] = "great" -- new entry, with key=20 and value="gre…
LUA提供了自动数值转换, 基本上说是乱来也不为过, 就当做是不熟悉数据结构吧, 例子: print("10" + 1) --> 11 print("10 + 1") --> 10 + 1 print("-5.3e-10"*"2") --> -1.06e-09 print("hello" + 1) -- ERROR (cannot convert "hello") 我个…