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

糖果

糖果
LUA教程

Lapis框架的常用处理方法

Lapis框架的常用处理方法 Continue reading

MoonScript实现选择排序

Published on February 26, 2017

MoonScript与Redis客户端

Published on January 19, 2017