lua 語法,Lua語法快速入門

 2023-11-18 阅读 16 评论 0

摘要:有編程語言基礎時,學習一個新語言語法是非常快速的 ,無非從以下幾點入手: 注釋變量類型運算符條件分支語句循環語句函數特殊用法面向對象思想(未包含在此) 等 以下通過Lua代碼加注釋,直觀闡述以上內容 --注釋方式 --[[多行注釋 --]

有編程語言基礎時,學習一個新語言語法是非常快速的 ,無非從以下幾點入手:

  1. 注釋
  2. 變量類型
  3. 運算符
  4. 條件分支語句
  5. 循環語句
  6. 函數
  7. 特殊用法
  8. 面向對象思想(未包含在此) 等

以下通過Lua代碼加注釋,直觀闡述以上內容

--注釋方式
--[[多行注釋
--]]
--********************變量類型********************
--lua中所有的變量 不需要申明變量類型
--lua中的所有變量 默認為全局變量  非全局前面加local
--lua中沒有各種數值類型 統一都是Number類型 表示浮點數和
print("*************全局本地變量*************")
local a = 1 --局部 僅限于本文本訪問  編程時 盡量都加local 
print(a)
a1 = 1.5 --全局 
print(a1)
--lua中只有false和nil才為假  0和空字符串為真
e = true;
print(e)
--lua中的string 可以用單引號或者雙引號括起來
print("*************字符串相關*************")
b = '單引號字符串'
print(b)
c = "雙引號字符串"
print(c)
--lua中字符串的換行 省略了\n換行替代符號
c = [[我是
你的
小寶貝
]]
print(c)
--字符串相關
str = "abCdefg"
print(string.upper(str))--小寫轉大寫
print(string.lower(str))--大寫轉小寫
print(string.reverse(str))--翻轉字符串
print(string.find(str, "Cde"))--字符串索引查找
print(string.sub(str, 3))--字符串截取
print(string.rep(str, 3))--字符串重復
print(string.gsub(str, "Cd", "**"))--字符串修改
print(#str)--字符串長度
a = true
print(tostring(a));print(string.format("我是%s,我今年%d歲了", "小寶貝", 2))--字符串長度
--lua中空的關鍵字時nil 相當于C#中的null
print("*************空引用*************")
d = nil
print(d)
print("*************類型獲取*************")
--字符串拼接符號..
--type 類型判斷
print("類型判斷"..type(e))--********************運算符********************
print("*************運算符*************")
--lua中沒有自增減運算符
print("加法運算"..1+2)
print("余數運算"..9%2)
print("減法運算"..9-2)
print("乘法運算"..9*2)
print("除法運算"..9/2)
print("冪運算"..9^2)
--********************條件分支語句********************
print("*************條件分支語句*************")
a = 9
if a > 9 thenprint("大于9")
elseif a >= 5 thenprint("大于5")
elseif a == 3 then print("值為3")
elseif a ~= 2 then --不等于print("值為3")
end
--********************邏輯運算符********************
print("*************邏輯運算符*************")
a = true
b = false
if a and b then --邏輯與print("大于9")
elseif a or b5 then --邏輯或print("大于5")
elseif not a then -- 邏輯否print("其它數")
end
--********************循環語句********************
print("*************循環語句*************")
--while 循環
print("*************while循環*************");
num = 0
while num < 5 doprint(num);num = num + 1
end
--do while 循環
print("*************do while循環*************");
a = 1;
repeatprint(a);a = a + 1
until a > 5
--for循環
print("*************for循環*************");
for i = 1,5 do --默認遞增+1print(i)
endfor i = 5,1,-1 do --遞減1print(i)
end
--********************函數********************
print("*************函數*************")
function f(x) return x^2
end		
print(f(2))function f2(x2) if x2 < 10 thenprint("白卷")elseif x2 < 60 thenprint("分太低")elseif x2 < 70 thenprint("及格")end
end
f2(2)
print("*************變長參數函數*************")
function ff( ... )local arg = {...}local total = 0for i=1,#arg dototal = total + arg[i]endprint(total)
end
ff(1,2,3,4,5,6)print("*************函數嵌套*************")
function f3(x)return function(y) return x + y end
end
a = f3(1)
print(a(2))--********************復雜數據類型********************
print("*************復雜數據類型*************")
--所有的復雜類型都是table(表)
--數組
print("*************數組,列表*************")
--數組的存儲類型可以混合,默認索引從1開始
a = {1,2,3,"12312",123123}
print(a[1])
print(a[4])
print(#a)--打印長度 從1開始計數 
print("*************數組遍歷*************")
for i=1,#a doprint(a[i])
end
--可以自定義索引 甚至負索引
print("*************自定義索引*************")
a = {[0]=1,2,3,[-1]=4,5}
print(a[0])
print(a[1])
print(a[-1])
print(a[2])
print(a[3])
print(#a)--打印長度 中間產生索引斷裂了 會停止計數
print("*************二維數組*************")
a = {{1,2,3},{4,5,6}}
print(a[1][1])
print(a[1][2])
print(a[1][3])
print(a[2][1])
print(a[2][2])
print(a[2][3])
--迭代器遍歷
print("*************ipairs迭代遍歷鍵值*************")
a = {[0] = 1,2,[-1] = 3,4,5}
--遍歷鍵值
for i,k in ipairs(a) doprint("ipairs遍歷鍵"..i)print("ipairs遍歷值"..k)
end
print("*************pairs迭代遍歷鍵值*************")
for i,k in pairs(a) doprint("pairs遍歷鍵"..i)print("pairs遍歷值"..k)
end
print("*************迭代遍歷鍵*************")
--遍歷鍵
for i in pairs(a) doprint("鍵"..i)
end
print("*************字典*************")
a = {["1"] = 5, ["2"] = 4}
print(a["1"])
print(a["2"])
print("*************類*************")
student = {--年齡age = 1,--性別sex = 0,--unity成績unity = 90,--成長行為Up = function(self)self.age = self.age + 1print("我成長了"..self.age)end,--上課行為Learn = function( )print("學習")end
}student.Learn()
student.Up(student)
student:Up()
--student.Learn()
student.age = 2
print(student.age)print("*************特殊用法*************")
a,b,c = 1,2,3,4 --4會被忽略
print(a)
print(b)
print(c)
a,b,c = 1,2 --c會變為nil
print(a)
print(b)
print(c)--多個返回值
function Test()return 10,20,30,40
enda,b,c = Test()
print(a)
print(b)
print(c)

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/178254.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息