LUA學習筆記(第5 6章)

2021-09-02 16:05:30 字數 1886 閱讀 2264

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 maxvalue, maxpos

maxvalue = arr[1]

maxpos = 1

for i=1,#arr do

if arr[i] > maxvalue then

maxvalue = arr[i]

maxpos = i

endend

return maxpos, maxvalue

endprint(getmax)

unpack函式

print(unpack)

它接受乙個陣列作為引數,並從下標1開始返回陣列的所有元素

變長引數

function add( ... )

local s = 0

for i,v in ipairs do

s = s + v

endreturn s

endprint(add(1, 2, 3, 4))

返回所有實參

function add( ... )

return ...

endprint(add(1, 2, 3, 4))

通常乙個函式在遍歷其變長引數時只需要使用表示式

但是變長引數中含有nil則只能使用函式select了

select("#", ...)返回所有變長引數的總數,包括nil

print(#) -->5

print(select("#", 1,2,3,4,5,nil)) -->6

具名實參

函式呼叫需要實參表和形參表進行匹配,為了避免匹配出錯,而使用具名實參。

例:

function window( options )

_window(options.title,

options.x or 0,

options.y or 0,

options.width, options.height,

options.background or "white",

options.border

)endw = window

深入函式

lua中函式與所有其他值一樣都是匿名的:當討論乙個函式時,實際上是在討論乙個持有某函式的變數。

a =

a.p("hello")

print = os.date()

a.p(print)

乙個函式定義實際就是一條語句(賦值語句)

將匿名函式傳遞給乙個變數

foo = function() return "hello world" end

print(foo())

等價於我們常見的

function foo()

return "hello world"

end匿名函式

arr = ,

, , ,}

table.sort(arr, function (a, b) return (a.name < b.name) end)

for i,v in ipairs(arr) do

print(v.name)

end

LUA學習筆記(第18 20章)

print math.pi print math.huge lua中表示的最大數字 3.1415926535898 1.inf print math.rad 90 轉換成弧度 print math.deg math.pi 轉換成角度 math.random 用於生成偽隨機數 不帶引數,它將返回 0,...

《Lua程式設計 第二版 》第5,6章筆記

第5章表示式 lua的函式一般將引數放到函式名後的圓括號中。特殊情況 乙個函式只有乙個引數,並且該引數是乙個字串或table構造式,那麼圓括號可有可無,例如 print hello world print helloworld dofile a.lua dofile a.lua print a me...

C 學習筆記(5 6章)

5.1 clock 的使用 1,包含在time.h的檔案中。2,typedef 1,不會建立新型別。只是為已有型別建立乙個新名稱。3,cin.get ch 和cin.get 的區別 屬性 cin.get ch cin.get 傳遞輸入字元的方式 賦給引數ch 將函式返回值賦給ch 用於字元輸入時函式...