一、基本資料型別:
lua: nil(空)、boolean(false和nil為假)、number(數值)、string(字串)、table(表)、function(方法)、thread (執行緒)、userdata
python: None(空)、boolean(false和None為假)、number(數值)、string(字串)、list(串列)、tuple(元表)、dictionary(字典)、def(函式)、thread (執行緒)
string操作:
lua:
str = “Hello” .. “World!”
print (str) # 輸出完整字串
print (string.sub(str,1,1)) # 輸出字串中的第一個字符
print (string.sub(str,3,5)) # 輸出字串中第三個至第五個之間的字串
print (string.sub(str,3,-1)) # 輸出從第三個字符開始的字串
print (str .. "TEST") # 輸出連接的字串
print (string.find(str,"el")) # 輸出第一個滿足項起始下標
print (string.format("the value is:%d",4)) # 字串格式化輸出
輸出結果
Hello World!
H
llo
llo World!
Hello World!TEST
2 3
the value is:4
python:
str = “Hello” + “World!”
print (str) # 輸出完整字串
print (str[0]) # 輸出字串中的第一個字符
print (str[2:5]) # 輸出字串中第三個至第六個之間的字串
print (str[2:]) # 輸出從第三個字符開始的字串
print (str * 2) # 輸出字串兩次
print (str + "TEST") # 輸出連接的字串
print ("He" in str) # 查詢是否包含某字符
print ("the value is:%d" %(4)) #字串格式化輸出
輸出結果
Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST
True
the value is:4
集合操作:
lua: 下標從1開始
array = {"Lua", "Python"}
for i= 0, #array do
print(array[i])
end
--for回圈 ipairs對于集合下標要求必須從1開始遞增并且中間值不可為nil
--pairs 輸出結果是隨機的即不是按照集合順序輸出,但沒有ipairs的限制
for _, v in ipairs(array) do
print(v)
end
輸出結果
"Lua"
"Python"
"Lua"
"Python"
python: 下標從0開始
array = ["Lua", "Python"]
for i in range(len(array)):
print(array[i])
i = 0
while (i<len(array)):
print(array[i])
i+=1
輸出結果
"Lua"
"Python"
"Lua"
"Python"
二、lua注意事項:
1、lua函式第一層結構中,return陳述句之后不能再有別的代碼,
function func() return "H" local data = "Hello" end
2、goto陳述句的跳轉目的,不能寫到邏輯判斷陳述句塊中,
function func() local i = 1 goto continue if i == 2 then ::continue:: print("true") else print("false") end end
3、table之間的賦值為參考,即只是將地址進行參考,而不是申請新的記憶體空間,
function func() local tab1 = {1, 2, 3} local tab2 = tab1 table.remove(tab2) for i = 1, #tab1 do print(tab1[i]) end print("_______________") for i = 1, #tab1 do print(tab2[i]) end end func() --[[ 1 2 _______________ 1 2 ]]
4、在使用and或or時,盡可能加括號,
function func() local i = 1 print(i and 10 or 5 + 1) print((i and 10 or 5) + 1) i = nil print(i and 10 or 5 + 1) print((i and 10 or 5) + 1) end func() --[[ 10 11 6 6 ]]
5、for陳述句,下標不是連續的不要使用ipairs,ipairs遇見nil就回傳,
function func() local tab = {1, 2, 3, nil, a = 5, 6} for i = 1, #tab do print(tab[i]) end print() for k, v in ipairs(tab) do print(k, v) end print() for k, v in pairs(tab) do print(k, v) end end func() --[[ 1 2 3 nil 6 1 1 2 2 3 3 1 1 2 2 3 3 5 6 a 5 ]]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/118194.html
標籤:其他
下一篇:Docker運維
