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大小...