• 友链

  • 首页

  • 文章归档
h u a n b l o g
h u a n b l o g

欢

HI,Friend

04月
19
Lua

Lua入门

发表于 2022-04-19 • 字数统计 2346 • 被 482 人看爆

语法规范

Lua语言中的标识符(或名称)是由任意字母、数字和下画线组成的字符(注意,不能以数字开头),大小写敏感

“下画线+大写字母”(例如_VERSION)组成的标识符通常被Lua语言用作特殊用途,应避免将其用作其他用途

保留字

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

注释
单行注释--
多行注释--[[ 需要注释部分 --]] 或 --[[ 需要注释部分 ]]
需要重启多行代码时,只需要在多行注释开始部分多加"-",如:---[[ 需要注释部分 --]]

例

--[[
local function func(n)
    if n == 0 then
        return 1
    else
        return n * func(n - 1)
    end
end
]]

--[[
for i = 1, 10, 1 do
    print(i,"的阶乘:", func(i))
end
--]]

--代码重启部分
---[[
for i = 1, 10, 1 do
    print(i,"的阶乘:", func(i))
end
--]]

Lua语言分号可加可不加

变量

定义和声明
变量无需定义类型,类似JavaScript里的var

变量无需声明即可使用,无赋值则默认是nil(类似其它语言的null),也就是不区分未初始化变量和被赋值nil的变量

b   ---> nul
b = 10  --> 10

全局变量和局部变量
Lua中默认变量类型为全局变量

b = 10      --全局变量

局部变量加上关键字local

local b = 10      --全局变量

类型和值

Lua中有8中基本类型:nil(空)、boolean(布尔)、number(数值)、string(字符串)、userdata(用户数据)、function(函数)、thread(线程)、table(表)

type(nil)           --> nul
type(true)          --> boolean
type(10.4 * 3)      --> number
type("Hello world") --> string
type(io.stdin)      --> userdata   io是输入输出 用于读写文件操作
type(print)         --> thread
type({})            --> table
type(type(X))       --> string  不管X是什么,最后一行返回的永远是string。这是因为函数type的返回值永远是一个字符串

userdata类型运行把任意C语言数据保存在Lua语言变量中,在Lua中,用户数据类型除了赋值和相等性测试外,没有其它预定义操作,被用来表示由应用或C语言编写的库所创建的新类型。例如:I/O库使用用户数据来打开的文件

变量没有预定义的类型,任何变量都可以包含任何类型的值

type(a)     --> nul    'a'未初始化
a = 10
type(a)     --> number
a = "a string"
type(a)     --> string
a = nil
type(a)     --> nil

nil
表示无效值,将nil赋值给变量相当于将其删除

Boolean
Lua中将除Boolean值false和nil外其它值视为真,包括零和空字符串

逻辑运算符
and:如果第一个操作数为"false",则返回第一个操作数,否则返回第二个操作数

4 and 5         --> 5
nil and 13      --> nil
false and 13    --> false

or:如果第一个操作数不为"false",则返回第一个操作数,否则返回第二个操作数

0 or 5          --> 0
false or "hi"   --> "hi"
nil or false    --> false

not:返回Boolean类型,类似取反

not nil     --> true
not false   --> true
not 0       --> true
not not 1   --> true
not not nil --> false
分享到:
Lua数值
VS编译Lua源码
  • 文章目录
  • 站点概览
欢

网红 欢

你能抓到我么?

Email RSS
看爆 Top5
  • mac系统版本与Xcode版本有冲突 4,080次看爆
  • JAVA_HOME环境配置问题 3,731次看爆
  • AssetBundle使用 3,499次看爆
  • VSCode配置C++开发环境 3,257次看爆
  • Lua反射 3,133次看爆

Copyright © 2025 欢 粤ICP备2020105803号-1

由 Halo 强力驱动 · Theme by Sagiri · 站点地图