【Lua】脚本语言

基础:

用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

注释:
  • 单行注释

    --
    
  • 多行注释

    --[[
     多行注释
     多行注释
     --]]
    
    
变量:
  • 局部变量

    -- 局部变量赋值
    local b=2 
    
  • 全局变量

    -- 全局变量赋值
    a=1
    
  • 如果没赋值,则为nil,类似Java的null

Lua的数据类型:

Lua 是动态类型语言,变量不要类型定义,只需要为变量赋值。 值可以存储在变量中,作为参数传递或结果返回

数据类型描述
nil表示一个无效值(在条件表达式中相当于false)
booleantrue 或者 false
number双精度浮点数
string双引号或者单引号
function由c或者lua编写的函数
userdata表示任意存储在变量中的C数据结构
thread表示执行的独立线路,用于执行协同程序
print(type("Hello world"))      --> string
print(type(10.4*3))             --> number
print(type(print))              --> function
print(type(type))               --> function
print(type(true))               --> boolean
print(type(nil))                --> nil
流程控制:
if条件语句
  • if语句

    if(布尔表达式)then
       --[ 在布尔表达式为 true 时执行的语句 --]
    end
    
  • if - else 语句

    if(布尔表达式)then
       --[ 布尔表达式为 true 时执行该语句块 --]
    else
       --[ 布尔表达式为 false 时执行该语句块 --]
    end
    
循环语句
  • while循环

    while(condition)do
       Statements
    end
    
    • 实例

      a=10
      while( a < 20 )do
         print("a 的值为:", a)
         a = a+1
      end
      
  • for循环

    for var=exp1,exp2,exp3 do  
    <执行体>  
    end 
    

    var 从 exp1 变化到 exp2,每次变化以 exp3 为步长递增 var,并执行一次 执行体,exp3 是可选的,如果不指定,默认为1

  • repeat…until语句 [满足条件结束]

    repeat
       Statements
    until( condition )
    
函数

lua中也可以定义函数,类似于java中的方法

--[[ 函数返回两个值的最大值 --]]
function max(num1, num2)

    if (num1 > num2) then
        result = num1;
    else
        result = num2;
    end

    return result; 
end
-- 调用函数
print("两值比较最大值为 "..max(10,4))
print("两值比较最大值为 "..max(5,6))

PS:..表示拼接

Table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组、字典等。

Lua也是通过table来解决模块(module)、包(package)和对象(Object)的。

-- 初始化表
mytable = {}

-- 指定值
mytable[1]= "Lua"

-- 移除引用
mytable = nil
模块

模块类似于一个封装库,从 Lua 5.1 开始,Lua 加入了标准的模块管理机制,可以把一些公用的代码放在一个文件里,以 API 接口的形式在其他地方调用,有利于代码的重用和降低代码耦合度。

-- 文件名为 module.lua
-- 定义一个名为 module 的模块
module = {}
-- 定义一个常量
module.constant = "这是一个常量"
-- 定义一个函数
function module.func1()
    print("这是一个公有函数")
end
local function func2()
    print("这是一个私有函数!")
end
function module.func3()
    func2()
end
return module
  • require 函数

    require 用于 引入其他的模块,类似于java中的类要引用别的类的效果

    require("<模块名>")
    require "<模块名>"
    

    我们可以将上面定义的module模块引入使用,创建一个test_module.lua文件,在其中使用module模块内的方法

    -- test_module.lua 文件
    -- module 模块为上文提到到 module.lua
    require("module")
    print(module.constant)
    module.func3()
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

总在寒冷清秋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值