lua 基础

1.基础语法

print("hello world")

--[[sss
sss
ss --]]
--变量申明可以直接写名字
--一共有五种类型     根据数据去确定数据类型
mytablename = {12,122,1}
print(mytablename[1])
-- lua 默认变量都是全局的变量
-- string 可以单引号
-- 数组第一位索引是1


hp =59;
if(hp<90) then
 print('不及格')
end


if hp>90 then
   print("niubi")
elseif hp>60 and hp < 80 then
   print("及格")
else
    print("bujige")
print("nige shabi")
end
--lua 没有自增自减运算符号
index = 1


while index < 3 do  index = index + 1 end
print (index)


repeat index = index +1
until index >=3


print (index)   --4




sum = 0
for index1 = 1,100  do
  sum = sum + index1
  if(sum > 100) then
  sum = 1000
  break
  end
 end

print(sum)


function  Plus ( num1 , num2)
  return  num1 + num2
end


resoult = Plus(11,11)
print(resoult)


print(math.abs(-1))
print(math.max(1,2,3,4))




str1 = "heh"
str2 = "bab"
print(string.sub(str1,1,2)..str2)




matable1 = {}
matable1[1] = "mmmm"
matable1["n"] = "nnnn"


print(matable1.n)
print(matable1['n'])


myt = { name = "heheh",age = 10, sex = "men",h="ke"}
print(myt[1])  --nil
print(myt[name])--nil
print(myt['name'])--"heheh"
print(myt.name)--"heheh"
myt1 = { "a","b","c"}
--print( myt1[1])


--[[for i = 1,3 do
print(myt1[i])
end
]]--


--[[i=1
while i<4 do
print(myt1[i])
i = i+1
end
]]--


--[[for i = 1,table.getn(myt1) do
--i = i+2
print (myt1[i])


end
]]--
-- 所有都能遍历的数组
for index ,value in pairs(myt) do
print(index,value)
end


--也可以
for index1 ,value1 in pairs(myt1) do
print(index1 ,value1)
end


t = { name = "fei",age = 13,high = 120}


--table.insert(t,2,2)
--print(t[2])
table.insert(t,"hehheh")
---位置是n+1 但是默认的key 是 1 开始
for key,value in pairs(t) do
print( key ,value)
end

2,面向对象
Enemy = {}
-- 关键字  可以索引当前对象
local this = Enemy


Enemy.hp = 10
Enemy.speed = 100
Enemy.hurt = 1
--方法可以放在变量中
Enemy.move = function ()


print("敌人在移动",this.speed)
end


--Enemy.move()  --调用
--this.move()   --调用








Player = {}
Player.hp = 100
Player.speed = 10
Player.hurt =111
Player.name ="shabi"
Player.Move = function (i,j)
              Player.hp = i
 Player.speed =j
 print(Player.hp,Player.speed)
 end


--Player.Move(1,1)


function  Player.Attack (j)
 Player.hurt = j
 print(Player.hurt)
 Enemy.hp = Enemy.hp -j
 print(Enemy.hp)
end
---自动改变赋值类型
Player.Attack("1")  --1 9
Player.Attack(2) -- 2 7










### Lua基础语法概述 Lua 是一种轻量级脚本语言,具有简单而强大的特性。以下是关于 Lua 的基本语法介绍: #### 变量与数据类型 Lua 支持八种原生数据类型[^2],其中包括四种简单的变量类型(`nil`, `number`, `string`, 和 `boolean`),以及四种复杂的变量类型(`table`, `function`, `thread`, 和 `userdata`)。 - **Nil**: 表示无值的状态。 - **Number**: 用于表示整数和浮点数。 - **String**: 字符串可以通过双引号或单引号定义。 - **Boolean**: 包含两个值:`true` 和 `false`。 例如: ```lua a = nil -- Nil 类型 b = 10 -- Number 类型 c = "Hello" -- String 类型 d = true -- Boolean 类型 ``` #### 关键字 Lua 中的关键字列表如下[^3],这些关键字不能被用作变量名或其他标识符名称: - `and`, `break`, `do`, `else`, `elseif`, `end`, `false`, `for`, `function`, `if`, `in`, `local`, `nil`, `not`, `or`, `repeat`, `return`, `then`, `true`, `until`, `while`, `goto`. #### 字符串操作 字符串的操作是 Lua 编程中的重要部分之一。通过内置的 `string` 库可以实现各种字符串处理功能。例如,使用 `string.sub()` 函数可以从指定位置提取子字符串[^1]。 代码示例: ```lua print(string.sub("Hello Lua", 4, 7)) --> 输出 'lo Lu' print(string.sub("Hello Lua", 2)) --> 输出 'ello Lua' print(string.sub("Hello Lua", -3, -1)) --> 输出 'ua' ``` #### 函数定义 函数在 Lua 中既可以作为普通的语句块存在,也可以作为一个表达式的返回值。匿名函数通常用于回调或者闭包场景中[^4]。 示例代码展示如何创建并调用带参数的函数: ```lua -- 定义一个加法器函数 function add(a, b) return a + b end result = add(5, 3) -- 调用该函数并将结果赋给 result print(result) --> 输出 8 ``` 对于更高级的应用场合,则可能涉及嵌套函数甚至闭包结构的设计思路。下面是一个利用闭包特性的实例演示: ```lua function createCounter(startValue) local count = startValue or 0 -- 初始化计数值,默认为零 return function() count = count + 1 -- 更新内部状态 return count -- 返回当前计数值 end end counterA = createCounter(10) -- 创建基于初始值 10 的计数器 A print(counterA()) --> 输出 11 print(counterA()) --> 输出 12 ``` --- #### 控制流语句 控制流程主要包括条件判断 (`if`)、循环迭代(`for`, `while`)等逻辑构建单元。这里给出几个典型片段供参考学习: ##### 条件分支 ```lua value = 5 if value > 0 then print("Positive number") --> 当 value>0 执行此条目 elseif value == 0 then print("Zero") else print("Negative number") end ``` ##### 循环遍历 ```lua for i=1,5 do -- 数值范围内的固定次数执行动作 print(i) end --> 分别输出 1 到 5 i = 1 -- 使用 while 实现相同效果 while i <= 5 do print(i) i = i + 1 -- 自增操作不可遗漏 end ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值