LUA學習筆記(第18 20章)

2022-02-17 05:09:54 字數 2341 閱讀 4058

print(math.pi)-->π

print(math.huge)-->lua中表示的最大數字

3.1415926535898

1.#inf

print(math.rad(90))-->轉換成弧度

print(math.deg(math.pi))-->轉換成角度

math.random()用於生成偽隨機數

不帶引數,它將返回【0, 1]內均勻分布的偽隨機實數

帶引數n(整數),它將返回【1, n】內均勻分布的偽隨機整數

帶引數m,n(整數),它將返回【m, n】內均勻分布的偽隨機整數

math.randomseed用於設定偽隨機數生成器的種子數

math.randomseed(os.time())

math.randomseed(os.time())

for i=1,5 do

print(math.random(6))

end

table是lua中唯一的資料結構。

初始化與列印輸出

arr = {}

for i=1,10 do

arr[i] = i * 10

endprint("the length of arr is " .. #arr)

for i,v in ipairs(arr) do

print("arr[" .. i .. "] = " .. v)

end

lines = 

for i,v in pairs(lines) do

print(i, v)

end

插入table.insert(陣列, [位置], 資料)

位置是可選的,不選擇則插在陣列末尾

當然在陣列起始或中間插入,不是乙個好的選擇

刪除table.remove(陣列,[位置])刪除陣列指定位置上的元素

位置同樣是可選的,沒有位置則從尾部刪除。

連線table.concat(陣列, [分隔符], [起始位置], [終止位置])

arr = {}

for i=1,10 do

arr[#arr + 1] = i * 10

endprint(table.concat(arr, " : ", 1, 10))

遍歷巢狀陣列

function printer(arr)

if type(arr) ~= "table" then

print(arr)

return

endfor i=1,#arr do

printer(arr[i])

endends = , "and", , }

--printer(s)

printer(s)

function printer(arr)

if type(arr) ~= "table" then

return arr

endlocal res = {}

for i=1,#arr do

res[i] = printer(arr[i])

endreturn table.concat(res, " ")

endlocal s = , "and", , }

print(printer(s))

排序table.sort( tablename, [sortfunction] )

sortfunction 可選。

sortfunction 有兩個引數,如果希望第乙個引數在排序結果中位於第二個引數面前,就應當返回true。

如果沒有提供這個函式,sort就是用預設的小於操作。

arr =

table.sort(arr)

print(unpack(arr))

預設從小到大排序

等價於:

function sortfunction(x, y)

if x < y then

return true

else

return false

endend

arr =

table.sort( arr, sortfunction)

print(unpack(arr))

lua中無法對table的索引排序,只能將key儲存在陣列,再對陣列排序。

lines = 

arr = {}

for key in pairs(lines) do

arr[#arr + 1] = key

endprint(unpack(arr))

table.sort(arr)

print(unpack(arr))

LUA學習筆記(第5 6章)

x a or b 如果a為真則x a 如果a為假則x b print a b 任何非nil型別都會被連線為字串,輸出 多重返回值 local s,e string.find hello world wo print s e 自定義函式 function getmax arr local maxval...

《Lua程式設計》第6章 深入函式 學習筆記

在lua中,函式是一種 第一類值 first class value 它們具有特定的詞法域 lexical scoping 詞法域 函式可以潛逃在另乙個函式中,內部的函式可以訪問外部函式中的變數。它允許lua在應用各種函式式語言 functional language 中的強大程式設計技術。lua中...

學習筆記 第4章

standard 標準模式,呼叫startactivity殘生乙個例項 singletop 檢測是否已經存在乙個例項位於activitystack的頂部,如果存在就不產生新的勢力,否則呼叫newinstance產生新的勢力 singletask 在乙個新的task中產生這個勢力,以後每次呼叫都用此例...