二十五,Lua语法

111 阅读2分钟

一,Lua介绍

image

  • 快速入门

    1. 新建hello.lua文件

      touch hello.lua
      
    2. 添加内容

      print("Hello World!")
      
    3. 运行

      lua hello.lua
      

二,变量和循环

2.1 数据类型

数据类型描述
nill只有值nil属于该类,表示一个无效值,在条件判断中相当于false
boolean包含两个值:false和true
number表示双精度类型实浮点数
string字符串由一对双引号或单引号表示
function由C或Lua编写的函数
tableLua中的表,是一个关联数组,数组的索引可以是数字,字符串或table类型。在Lua中,table的创建是通过构造表达式来完成的,最简单的构造表达式是{},他表示一个空表。

可以利用type函数来判断变量的类型

print(type("hello world"))

2.2 变量

Lua声明变量的时候,不需要指定数据类型

-- 声明字符串
local str='hello'
-- 声明数字
local num=21
-- 声明布尔类型
local flag=true
-- 声明数组,key为索引的table
local arr={'java','python','lua'}
-- 声明table,类似Map
local map={name='Jack',age=21}

访问table

-- 访问数组,lua数组下标从1开始
print(arr[1])
-- 访问table
print(map['name'])
print(map.name)

字符串拼接用..来拼接

local str='hello' .. 'world'

2.3 循环

数组,table都可以用for循环来遍历

  • 遍历数组

    -- 声明数组,key为索引的table
    local arr={'java','python','lua'}
    -- 遍历数组
    for index,value in ipairs(arr) do
        print(index,value)
    end
    
  • 遍历table

    -- 声明map
    local map={name='Jack',age=21}
    -- 遍历table
    for key,value in pairs(map) do
        print(key,value)
    end
    

三,条件控制,函数

3.1 函数

定义函数的语法

function 函数名(argument1 ,argument2...,argument)
    --函数体
    return 返回值
end

举例:定义一个函数,用来打印数组

function printArr(arr)
    for index,value in ipairs(arr) do
        print(value)
    end
end

3.2 条件控制

类似Java的条件控制,例如if,else语法

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

与java不同,布尔表达式中逻辑运算是基于英文单词:

操作符描述实例
and逻辑与操作符,若A为false,则返回A否则返回B(A and B)为false
or逻辑或操作符,若A为true,则返回A否则返回B(A or B)为true
not逻辑非操作符,与逻辑运算结果相反,如果条件为true,逻辑非为falsenot(A and B)为true