lua学习(四)

原创 2006年06月15日 09:17:00

    这几天开了个小差, 把lua的很多扩展库都用了一下, luasocket, luasql, luacom, kepler... 最后终于理解了require的作用了.  其实也就是pil提及到的搜索加载目录那么简单,当然有一个经验就是定义LUA_PATH与package.cpath的值,就像定义include和lib的路径一样, 可以方便地导入到lua环境 :)
    本来打算用luasql的odbc库来做数据库访问的开发, 执行sql语句, 游标以及事务都成功了, 唯独执行带参数的存储过程不知道怎么搞,  这可郁闷了我很久. 由于对odbc不熟, 就查了下msdn文档, 后面看看luasql的源码发现于根本没有支持存储过程的参数. 看来要么就要自己在luasql的基础上扩展下,要么就要放弃它了. 手头上的事很多, 先放放,搞清楚一下odbc再说. 
 现在又回到了pil专注lua的语法了. table真的很cool,可以轻松实现稀疏矩阵, 串, 队列(单双向), 栈,集合以及各种其它的数据结构, 而且非常好用.  metatables和metamethods确实很酷, 利用这些东西可以实现运算符重载(看上去像), 继承(单/多),封装, getter/setter等等. 暂时还没有看到类的那一章. 有了前面的内容,怎么用__index定义原型链构造一个类的继承体系, 加上package, 应该八九不离十了,先意淫一把.
 忘了补充一下, 5.1  c api 中的 luaopen_*现在和lua调用其它普通c函数的过程一样:
lua_pushcfunction(L, luaopen_*);
lua_call();
也可以用
lua_cpcall(L, luaopen_*, 0); 简化上面两步的操作, 实际了看lua_cpcall的源码就知道,是一样的
那么现在5.1推荐的开始调用lua的写法是这样的: 
 lua_State *L = luaL_newstate();
 
 lua_cpcall(L, luaopen_base, 0);
 lua_cpcall(L, luaopen_io, 0);
 lua_cpcall(L, luaopen_string, 0);
 // ...
 // ...

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Lua学习笔记(四)

九、编译、执行与错误 Lua尽管是一种解释型语言,但也允许它在运行源代码之前预编译成一种中间形式。但解释型语言的特征在于,编译器是语言运行时的一部分,并且有能力执行动态生产的代码。因此执行编译产生的...

lua学习笔记四--协同程序

lua学习笔记-协同程序

Lua学习笔记(四)

5、函数 语法: function func_name (arguments-list) statements-list; end; Lua 也提供了面向对象方式调用函数的语法,比如 o:f...

Lua 学习笔记(四) —— 函数(二)

一、函数是匿名的 函数是匿名的是指它没有名称。 一个函数定义实际就是一条语句(更准确地说是一条赋值语句),这条语句创建了一种类型为“函数”的值,并将这个值赋予一个变量。例如,讨论print函数时,...

lua 学习笔记 三 & 四

在lua中,字符串的第一个字符的索引是1,也可以使用负数索引,这样将从字符串的尾部开始计数,索引-1代表字符串最后一个字符。 %a+ (alphabet)字母 +表示匹配一个或者多个 %c...

LUA学习教程

  • 2013-11-01 15:56
  • 105KB
  • 下载

lua学习中文

  • 2012-12-31 20:49
  • 1.71MB
  • 下载

Lua学习笔记-文件读写

背景:采用Lua进行文件读和写操作,最终简单模拟文件的复制操作。第一大类:IO表调用方式1、简单读写模式:io.input([file]) 设置默认的输入文件,file为文件名(此时会以文本读入)或...

Lua学习示例

  • 2012-06-20 15:59
  • 132KB
  • 下载

Lua语法学习

  • 2017-03-30 08:39
  • 41KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)