Lua语言基础学习:Lua中的关键字、操作符、变量

Lua关键字

关键字(Keyword)是被赋予特殊含义的标识符,它们用于表示一种数据类型、程序结构、控制流程等。在编程语言中,关键字不能用作变量名、函数名、类名等标识符,以避免与语言本身的语法或内置功能发生冲突。关键字通常全部小写,以确保其在代码中的唯一性和易识别性。以下为lua语言的保留关键字表格:

关键字 使用方法
and 用于逻辑与操作:if a > 0 and b > 0 then
break 退出循环:break
do 块的开始:do ... end
else 条件语句的否分支:if a > 0 then ... else ...
elseif 条件语句的多重分支:if a > 0 then ... elseif b > 0 then ...
end 控制结构的结束:if a > 0 then ... end
false 布尔值假:local flag = false
for 数值型循环:for i = 1, 10 do ... end
function 定义函数:function foo() ... end
goto 跳转到标签:goto label
if 条件语句:if a > 0 then ... end
in 用于循环遍历:for i in ipairs(array) do ...
local 定义局部变量:local x = 10
nil 无值:local x = nil
not 逻辑非操作:if not condition then ...
or 用于逻辑或操作:if a > 0 or b > 0 then
repeat 重复循环直到条件为真:repeat ... until condition
return 从函数返回:return value
then 条件语句的一部分:if condition then ...
true 布尔值真:local flag = true
until 重复循环直到条件为真:repeat ... until condition
while 条件循环:while condition do ... end

操作符

操作符(Operator)是编程语言中用于执行特定操作(如算术运算、逻辑运算、赋值等)的符号。它们作用于一个或多个操作数(Operand),产生新的值或结果。操作符在编程语言中起着至关重要的作用,它们定义了程序的基本运算规则和逻辑结构。Lua作为一种轻量级的脚本语言,支持多种类型的操作符,以满足不同的编程需求。

类别 操作符 说明 使用方法
算术操作符 + 加法操作符,用于两个数的加法运算 a + b
算术操作符 - 减法操作符,用于两个数的减法运算;一元操作符,表示数的负值 a - b-a
算术操作符 * 乘法操作符,用于两个数的乘法运算 a * b
算术操作符 / 除法操作符,用于两个数的除法运算;结果总是浮点数 a / b
算术操作符 % 取模操作符,返回两个数相除的余数 a % b
算术操作符 ^ 指数操作符,用于计算第一个操作数的第二个操作数次幂 a ^ b
关系操作符 < 小于操作符,比较两个值的大小 a < b
关系操作符 > 大于操作符,比较两个值的大小 a > b
关系操作符 <= 小于等于操作符,比较两个值的大小 a <= b
关系操作符 >= 大于等于操作符,比较两个值的大小 a >= b
关系操作符 == 等于操作符,用于判断两个值是否相等 a == b
关系操作符 ~= 不等于操作符,用于判断两个值是否不相等 a ~= b
逻辑操作符 and 逻辑与操作符,如果两个操作数都为真,则结果为真;否则为假;采用短路求值 a and b
逻辑操作符 or 逻辑或操作符,如果两个操作数中至少有一个为真,则结果为真;否则为假;采用短路求值 a or b
逻辑操作符 not 逻辑非操作符,用于取反操作数的布尔值 not a
赋值操作符 = 基本的赋值操作符,用于将右侧表达式的值赋给左侧的变量 a = b
赋值操作符 +=-= 复合赋值操作符,结合了赋值和算术运算 a += b(相当于a = a + b)、a -= b
字符串连接 .. 用于连接两个字符串,如果其中一个操作数是数字,Lua会将其转换为字符串后再进行连接 str1 .. str2
其他操作符 # 长度操作符,用于获取字符串或表的长度 #str#table

变量

变量用于存储数据,在Lua中主要有三种变量:全局变量、局部变量和表字段变量。变量名可代表全局或局部变量,未声明的则默认为全局。

局部变量在其作用域内有效,全局变量则在整个程序中有效,变量未赋值前,其值为nil。使用方括号可以访问表中的数据,访问全局变量可通过_ENV表进行,但_ENV本身非全局。

Lua中的表字段变量(也称为表域)是表(table)这种数据结构中的一个重要组成部分。Lua中的表是一种非常灵活的数据结构,可以看作是一个数组、字典(或哈希表)、集合、记录或是这些结构的任意组合。表字段变量就是表中存储的具体数据项,每个数据项通过唯一的键(key)来访问,这个键可以是数字(作为数组索引)或字符串(作为哈希表的键)。

Lua 复制代码
-- 全局变量  
GlobalVar = 200  
  
-- 局部变量
local localVar = 100 
  
-- 表字段变量  
local myTable = {  
    name = "Lua", -- 使用字符串作为键,这是一个表字段变量  
    age = 10,        -- 另一个表字段变量  
    [1] = "元素1",   -- 使用数字作为键,这也是表字段变量的一种形式  
    ["key"] = "值"   -- 使用字符串作为键的另一种写法  
}  
   
print(GlobalVar) 
-- print(localVar)  因为localVar是局部变量,这行代码无法正常运行 
  
-- 访问表字段变量  
print(myTable.name)
print(myTable["age"])
print(myTable[1])
print(myTable.key)
  
-- 修改表字段变量的值  
myTable.name = "修改后的表名"  
print(myTable.name)
  
-- 添加新的表字段变量  
myTable.newField = "新字段的值"  
print(myTable.newField)
  
-- 访问全局变量通过_ENV 
print(_ENV.GlobalVar)
  
-- 尝试访问未声明的变量(值为nil)  
local undeclaredVar = nilVar 
print(undeclaredVar) 

代码运行结果如下:

相关推荐
奶香臭豆腐6 分钟前
C++ —— 模板类具体化
开发语言·c++·学习
晚夜微雨问海棠呀14 分钟前
长沙景区数据分析项目实现
开发语言·python·信息可视化
graceyun15 分钟前
C语言初阶习题【9】数9的个数
c语言·开发语言
波音彬要多做1 小时前
41 stack类与queue类
开发语言·数据结构·c++·学习·算法
Swift社区1 小时前
Excel 列名称转换问题 Swift 解答
开发语言·excel·swift
一道微光1 小时前
Mac的M2芯片运行lightgbm报错,其他python包可用,x86_x64架构运行
开发语言·python·macos
矛取矛求1 小时前
QT的前景与互联网岗位发展
开发语言·qt
Leventure_轩先生1 小时前
[WASAPI]从Qt MultipleMedia来看WASAPI
开发语言·qt
向宇it1 小时前
【从零开始入门unity游戏开发之——unity篇01】unity6基础入门开篇——游戏引擎是什么、主流的游戏引擎、为什么选择Unity
开发语言·unity·c#·游戏引擎
m0_748256781 小时前
WebGIS实战开源项目:智慧机场三维可视化(学习笔记)
笔记·学习·开源