lua|基础教程

注释

--单行注释

--[[
多行注释
多行注释
--]]

变量

  • nil:无效值,比较时需要加上双引号"",对全局变量和table复制nil,等于删除它们
  • boolean:布尔值
  • number:双精度类型的实浮点数
  • string:字符串,单引号''或双引号""或[[]]
  • function:函数
  • userdata:任意存储在变量中的c数据结构
  • thread:独立线路
  • table:关联数组,索引可以是数字或字符串,{}创建一个空表,数值下标1开始

关键字

and    break    do    else    elseif    end    false    for
function    if    in     local    nil    not    or    repeat
return    then    true    until    while

作用域

默认情况下,变量都是全局的,除非显示local声明为局部变量
尽量使用局部变量,因为1.避免命名冲突2.访问局部变量比全局变量快

赋值

a = "hello" .. "world"
a,b = 10,20
-- 这里c的值为nil
a,b,c = 1,2 

运算符

  • 与或非:and or not
  • ..:连接两个字符串
  • :一元运算符,返回字符串或表的长度

控制流程

  1. if语句
    	local a = 10
    	if a > 10
    	then
    		print("1")
    	else
    		print("2")
    	end
    
  2. 循环语句
    	-- while循环
    	while(true)
    	do
    		print("xxx")
    	end
    	-- for循环
    	a = {"one","two","three"}
    	for i,v in ipairs(a) do
    		print(i,v)
    	end
    	-- 另一种形式
    	function f(x)
    		print("function")
    		return x*2
    	end
    	for i=1,f(5) do print(i)
    	end
    	-- 打印1 3 5
    	for i=1,5,2 dp print(i)
    	end
    	-- repeat循环
    	a = 1
    	repeat
    		print(a)
    		a = a+1
    	util(a > 15)
    

函数

function maximum(a)
	local mi = 1
	local m = a[mi]
	for i,val in ipairs(a) do
		if val > m then
			mi = i
			m = val
		end
	end
	return m,mi
end

-- 可变参数
function fwrite(fmt, ...)  ---> 固定的参数fmt
    return io.write(string.format(fmt, ...))     
end

-- 统计给定可变参数个数
function foo(...)  
    for i = 1, select('#', ...) do  -->获取参数总数
        local arg = select(i, ...); -->读取参数
        print("arg", arg);  
    end  
end  

  1. Lua table 使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是 nil。
  2. Lua table 是不固定大小的,你可以根据自己需要进行扩容。

官方文档地址

Lua 5.3

原文地址:https://www.cnblogs.com/weiweng/p/12493610.html