lua 自學筆記5

2021-07-24 08:45:03 字數 2001 閱讀 2458

12 所有的關係操作符的運算結果都是true或false

//注意:

2<15 --->true

"2" < "15" --->false   //這是按順序比較,它會先比較"2"和"1"

//13 邏輯操作符(and、or、not)都將false和nil視為假

(1)and、or都是短路求值

print(4 and 5)  --->5

//and如果第乙個運算元是假的返回第乙個運算元,否則返回第二個運算元

print(4 or 5)  ----->4 

//or如果第乙個運算元為真的返回第乙個運算元,否則返回第二個運算元

//14 優先順序

^指數操作符和鏈結操作符".."是右結合的,其他操作符都是左結合的

//16 區域性變數與塊

j = 10 //全域性變數

local i = 1 //區域性變數 

//17 repeat重複執行迴圈體直到條件為真時結束(至少會執行一次)

repeat 

line = io.read()

until line ~= ""

print(line)

//列印輸入不為空的第一行內容

//18 return/break用於跳出當前的塊,一般不需要返回值的時候不用return。

//19 unpack(a)  a作為陣列,unpack函式將返回陣列a中所有值

//20函式

(1)lua的函式可以返回多個值 return num1,num2

(2)lua的引數可以不定長度

function add(...)

local s = 0 

for i,v in ipairs do

s = s + v

endreturn s

end(3)具名實參

(4)閉合函式

將乙個函式寫在乙個函式的裡面,裡面的函式可以呼叫外面函式內的變數

(5)非全域性的函式

local function f(《引數》)

《函式體》

end 

在使用遞迴方法呼叫函式時應該這樣寫:

local foo //先定義區域性變數再定義函式本身

foo = function(n)

if n==0 then return 1

else return n*foo(n-1)

endend

或function foo(n)

if n > 0 then return foo(n-1) end

end(6)正確的尾呼叫

尾呼叫不會耗費棧空間,正確格式:

return ()

//21 格式化文字string.format

function fwrite(fmt,...)

return io.write(string.format(fmt,...))

end//21 迭代器(closure)、ipairs 都是遍歷

(1)不同之處:

ipairs:

ipairs返回陣列的索引和該索引裡的值;

格式:for i,v in ipairs(a) do print(v) end

迭代器(closure):

迭代器是返回元素的值,不返回索引;

格式:先定義乙個函式

function values(t)

local i = 0

return function() 

i=i+1;

return t[i]

endend

再在乙個while迴圈中使用這個迭代器:

t =

iter = values(t)    --建立迭代器

while true do

local element = iter()  --呼叫迭代器

if element == nil then break end

print(element)

end//沒有泛型for來得簡便

QT自學筆記(5)

前言 這一節我們學習下繼續運用訊號與槽機制的應用,也就是核取方塊的應用。就是可以勾選的框,我們在裝軟體時就經常遇到,就是問你是否同意這個協議 在qt中核取方塊的英文是checkbox。1.statechanged int 這個是signal函式,即打勾或不打勾的狀態發生改變的訊號 2.ischeck...

MySQL自學筆記5

使用mysql 5.5以及mysql自帶命令客戶端 union 聯合,其作用是將2次或者多次查詢結果合併起來 要求 兩次的查詢的列數一致。推薦是查詢的每一列相對應的列型別也是一樣的 查詢可以來自多張表,但是如果多次sql語句取出來的列名如果不一樣的話,此時以第乙個sql的列名為準 不同sql語句中取...

HTML5自學筆記

內容區 content 元素中的所有子元素和文字內容都在內容區中排列。內容區的大小由width和height兩個屬性設定。邊框 border 邊框屬於盒子的邊緣,邊框裡面屬於盒子的內容,邊框外面屬於盒子的外部。要設定邊框,需要至少設定三個樣式 邊框的大小會影響盒子的大小。盒子大小 content大小...