lua基础

1. 安装

curl -R -O http://www.lua.org/ftp/lua-5.3.0.tar.gz
tar zxf lua-5.3.0.tar.gz
cd lua-5.3.0
make linux test
make install

注意:make linux test 时报错
lua基础_第1张图片
解决办法:缺少 libreadline-dev 依赖包,安装该依赖即可:

sudo apt-get update
sudo apt-get install libreadline-dev

2. 参考文档

lua教程

3. 基本用法

  • 变量默认是全局(即使是在语句块或者函数里也是全局变量,除非声明为local, 局部变量作用域从声明位置开始到所在语句块结束,需要注意:函数里的全局变量只有在调用函数后生效),访问未初始化的变量,得到 nil
  • 以下划线开头连接一串大写字母 被保留用于lua内部全局变量,如 _VERSION
  • 数据类型:nil(表示无效值)、boolean只有 false 和 nil 为 false,其他包括0均表示true)、number (默认只有double类型)、stringfunction (由C或lua编写的函数)、userdata (存储在变量中的C数据结构)、threadtable
  • lua 里表的默认初始索引为1
-- 这是单行注释
--[[
这是多行注释
多行注释
--]]

-- 删除全局变量
b = nil

-- 判断变量是否存在(type 返回的是字符串)
type(X)=="nil"

-- 单引号或双引号表示 string,也可以用 [[]]表示一块字符串
html = [[





]]

-- 数字字符串进行算术操作时,会尝试将数字字符串转换为数字
print("2"+6) -- 输出8.0

-- 字符串连接
print("a" .. "b")

-- 字符串长度
#str

-- table用法
-- 创建空表
a = {}
-- 初始化
b = {"a","b","c"}
-- 添加数据
a["key"] = "value"
a[20] = 10
for k, v in pairs(a) do
	print(k .. ":" .. v)
end
-- 访问索引
table1[1]
table1.key -- 当索引为字符串时
gettable_event(table1, 1)

-- function
-- 匿名函数
function(key, val)
	return key..":"..val;
end

-- 多变量同时赋值
a, b = 10, 5
-- 交换a,b的值
a, b = b, a -- lua会先计算右边的值

循环语句

while(true)
do 
	print("循环")
end

-- var 从 exp1变化到exp2,步长为exp3
for var=exp1,exp2,exp3 do -- 这三个表达式只计算一次, exp3默认为1
	print(var)
end

-- 泛型for循环:通过迭代器函数遍历所有值
t = {"a", "b", "c"}
for i, v in ipairs(t) do
	print(i,v)
end

repeat
	print("循环")
until(true)

-- goto: 将控制流程无条件转向被标记的语句处
local a = 1
::label:: print("--- goto label ---")

a = a + 1
if a < 3 then
	goto label
end

函数

  • 默认为全局函数,用local声明局部函数
-- 可变参数
function add(...)
	result = 0
	local arg = {...}
	for i, v in ipairs(arg) do
		result = result + v
	end
	print("总共传入 ".. #arg .. " 个参数")
	return result, #arg
end

运算符

a==b
a~=b
a^3
-- and or not

你可能感兴趣的:(#,lua)