Lua 复习 第一章

暑假的时候在家呆了半个月,准确的说应该是大三的暑假,在这半个月的时间里自学了lua.说起学习lua,也算是

自己第一次做的没有目的的学习吧,因为当时完全没有对lua的需求.以至于到现在都不知道当时是为什么学习lua

的,就如大二的时候学python一样.

 

现在就复习一下,然后找点东西写点代码. 关于学习lua,我只是看过<<lua程序设计>>这本书,另外看过lua的源码,

也只是一部分,并且没有认真的拜读巴西作者的神作.有时间应该把源码拿出来再看看,lua是用标准c写的,是很不错的

标准c教程.

 

今晚看了<<lua程序设计前三章>>,简单复习了一下,发现很多以前没有注意的一些细节,也许是因为时间久了,淡忘了.

不追究原因了,现在就重新来过一边吧,如果以后还是会忘记的话,记录下来也可以那过来做复习用.

 

1.关于lua语言的作者以及背景,就不多说了. lua大多都是作为脚本语言使用,一直都是配角,当然,也有些时候不是.像

   <<愤怒的小鸟>>,就是完全使用lua开发的.

 

2."/usr/bin/env lua"这句是什么意思呢?

   在<<lua程序设计>>中有说过,当作为脚本使用的时候,需要在脚本开始添加这一句.熟悉linux shell脚本都知道,在

   编写脚本文件的时候,需要在脚本文件头添加一句,用来标识脚本解释器的路径.换句话说,可以使用"/usr/bin/lua"来

   代替上面这句.那么下面就有个问题了,"env"是什么东西? 是工具,至于这个工具是用来做什么的.可以在终端执行一下

   来看看.

 1 DEFAULTS_PATH=/usr/share/gconf/ubuntu.default.path
 2 XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
 3 PATH=/usr/local/cuda-5.0/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
 4 DESKTOP_SESSION=ubuntu
 5 PWD=/home/respawn/lua_workplace/HelloWorldLua
 6 XMODIFIERS=@im=fcitx
 7 GNOME_KEYRING_PID=1715
 8 LANG=zh_CN.UTF-8
 9 MANDATORY_PATH=/usr/share/gconf/ubuntu.mandatory.path
10 UBUNTU_MENUPROXY=libappmenu.so
11 COMPIZ_CONFIG_PROFILE=ubuntu
12 GDMSESSION=ubuntu

    很容易看出来,上面是一系列和系统相关的配置,相信对于不同版本的linux都是不同的,当然我的是ubuntu.

    所以当需要将lua作为脚本使用的时候,可以使用"/usr/bin/lua","/usr/local/bin/local"等这种方式来表示lua解释器,

    但是这么做都依赖系统版本,所以使用env可以让我们的脚本移植性更好.

 

3.lua数据类型.

   lua中有8种数据类型,分别是:nil,boolean,number,string,userdate,function,thread,table.其中最重要的就是table.

   (ps:变量没有预定义类型.)

 

4.关于table的语法糖区别:

   a.x 和 a[x] 的不同?

   1) a.x  表示的是a["x"],表示的是用字符串"x"索引table.

   2) a[x] 表示的是按照变量x的值索引.

   这两者之间的区别最简单的直观理解就是使用第二种情况需要变量x已预先被初始化,否则索引结果为nil,而第一种情况

   则需要索引中有"x".所以索引一个table,使用语法糖方法比较简单,省去操作.

 

其他信息请参照书本<<lua程序设计>>进行学习.

 

 

 

posted @ 2012-11-04 19:47  Perfect Is Shit  阅读(311)  评论(0编辑  收藏  举报