Lua简明快速入门


  • Lua简明快速入门
  • 运行
  • 打印信息Hello Lua
  • 注释
  • 变量
  • 数字
  • 字符串
  • nil
  • 全局变量和局部变量
  • 控制语句
  • if-else分支
  • for循环
  • while循环
  • until循环


Lua脚本是一个很轻量级的脚本,也是号称性能最高的脚本,源码编译后,解释器居然不到200k。
lua中文手册

运行

在命令行上运行lua命令后进入lua的shell中执行语句
也可以把脚本存成一个文件

>lua  file.lua

打印信息Hello, Lua

> print("Hello, Lua")
Hello, Lua

注释

-- 两个减号是行注释
--[[
 这是块注释
 这是块注释
 --]]

变量

数字

Lua的数字都是double型,64bits

字符串

字符串可以用单引号,也可以用双引号

s = 'walternate'  -- 像Python那样的不可变的字符串。 
t = "双引号也可以" 
u = [[ 两个方括号 
       用于 
       多行的字符串。]] 
t = nil  -- 未定义的t; Lua 支持垃圾收集。

eg:

> str=[[123test
>> row2
>>
>> ]]
> print(str)
123test
row2


>

支持C类型的转义:

‘\n' (换行), ‘\r' (回车), ‘\t' (横向制表), ‘\v' (纵向制表), ‘\\' (反斜杠), ‘\”‘ (双引号), 以及 ‘\” (单引号)

nil

C语言中的NULL在Lua中是nil,比如访问一个没有声明过的变量。

全局变量和局部变量

lua中的变量如果没有特殊说明,全是全局变量,也就是不论在语句块或是函数里。变量前加local关键字的是局部变量。

theGlobalVar = 50
local theLocalVar = "local variable"

控制语句

if-else分支

if num > 40 then 
  print('over 40') 
elseif s ~= 'walternate' then  -- ~= 表示不等于。 
  -- 像Python一样,== 表示等于;适用于字符串。 
  io.write('not over 40\n')  -- 默认输出到stdout。 
else 
  -- 默认变量都是全局的。 
  thisIsGlobal = 5  -- 通常用驼峰式定义变量名。 

  -- 如何定义局部变量: 
  local line = io.read()  -- 读取stdin的下一行。 

  -- ..操作符用于连接字符串: 
  print('Winter is coming, ' .. line) 
end

NOTE
1)“~=”等价于C中的 !=
2)io库的分别从stdin和stdout读写的read和write函数
3)字符串的拼接操作符“..”
4)条件表达式中的与或非为分别是:and, or, not关键字。

for循环

从1加到100

-- 通常,范围表达式为begin, end[, step]. 
sum = 0
for i = 1, 100 do   -- 范围包括两端 
    sum = sum + i
end

使用 “100, 1, -1” 表示递减的范围

sum = 0
for i = 100, 1, -1 do
    sum = sum + i
end

从1到100的奇数和

sum = 0
for i = 1, 100, 2 do
    sum = sum + i
end

while循环

> sum=0
> num=1
> while num <= 100 do
>> sum=sum+num
>> num=num+1
>> end
> print(sum)
5050

until循环

sum = 2
repeat
   sum = sum ^ 2 --幂操作
   print(sum)
until sum >1000