Note:Programming in Lua - Chapter 1 Getting Started

Chapter 1  GettingStarted

hello.lua

       老规矩,hello world

       对于hello程序,只需要新建一个文件并输入一行代码:

       print("hello world!")

       之后将文件保存,如hello.lua。再运行lua解释器即可:

       lua hello.lua

lua解释器

       lua有一种交互模式,我们可以直接输入lua,将进入lua交互模式,我们可以在该模式下直接输入lua代码,输入Enter让它执行输入。要退出交互模式,只要输入一个eof控制字符即可。

       在交互模式下,它会自动检测输入是否是一个完整的程序块,如果不是,比如输入了function但没有输入end,那么解释器暂不执行而是等待程序被补完。(若是多行代码,那么建议放入文件中)

       lua解释器可以带命令,如-i :

       lua-i filename

表示执行完文件后进入交互模式。

       另一种加载文件的方式是dofile,我们可以在交互模式下使用dofile函数来加载文件。

       lua

       >dofile(filename)

       如果我们要测试一个文件,那我们可以在一个窗口编写这个文件的代码,在另一个窗口中运行lua解释器。

       lua还有其它几个选项:

-e可以直接在命令行中使用代码

       lua-e "print("hello")"

-l可用于加载库文件

       lua-i -l a -e "X = 10"    -- 加载了库文件a

       我们可以像使用可执行程序一样使用Lua文件,参见——像使用执行文件一样使用Lua文件

       只要定义一个_PROMPT的全局变量,就可以改变交互界面的提示符,新提示符会是_PROMPT的值。

       交互模式下,要打印任何表达式的值,可以用=开头(注意>符号是提示符):

       >= 10

       在解释器执行其参数前,会先查找一个名为LUA_INIT的环境变量,如果找到了这个变量,并且它以@开头,那么lua会把@后面的内容当成文件名并执行这个文件。我们可以利用它很灵活地在解释开始前加载某些文件

       解释器在运行脚本前,会用所有的命令行参数创建一个名为“arg”的table(arg是全局变量),我们可以通过查看这个变量来检索脚本的启动参数:

       lua-e "print("hello")" script a b

那么arg中的值大致如下:

       arg[-3]= "lua"

       arg[-2]= "-e"

       arg[-1]= "print("hello")"

       arg[0]= "script"

       arg[1]= "a"

       arg[2]= "b"

       注意脚本名称位于0位置,之前的参数是负数,之后的为正数。通常只使用正数索引

       在lua5.1中,一个脚本还可以通过“变长参数语法”来检索其参数,在脚本主体中,表达式“...”表示所有传递给脚本的参数。

规范

       lua语句之间不需要分隔符(甚至于同一行中),当然,使用分号来分隔也没什么问题:

       a= 1

       b= a * 2

       a= b  b = a*2

完全等价,虽然不推荐后一种写法。

       命名规范:任意数字,下划线,字母组成,但不能以数字开头,对于下划线后跟多个大写字母的名字,lua将它们用作特殊用途。对于单下划线_,lua用它作为哑变量(Dummy Variable)。

       上面说的字母,在不同的设置下可以是不同的,它依赖于区域设置(Locale),如果设置了一个正确的区域,那么可以使用那个区域特有的字符,不过这个造成问题,如果有一台机器不支持这些字符,那么gg。

       lua保留字:

       and  break do  else  elseif

       end  false for  function  if

       in  locale nil  not  or

       repeat  return then  true  until

       while

lua是有大小写之分的,and是保留字,但And可用作标识符。

       lua中的单行注释以—开头,多行注释被—[[ ]]括起。多行注释常用技巧:

       --[[

              code

       --]]

这样的话,如果我们不想把它们注释掉,只要将—[[改为---[[即可,这样第一行和最后一行都成了注释,代码就成可用的啦。

       全局变量不需声明,未初始化则默认初始化为nil,如果想要删除全局变量,可以手动把它赋为nil

猜你喜欢

转载自blog.csdn.net/fq_sl/article/details/80860106