Lua中的運(yùn)算符簡明總結(jié)
1. 數(shù)字運(yùn)算
支持 +, -, *, /,^ 。 這些運(yùn)算符的操作數(shù)都是實(shí)數(shù)。
2. 連接運(yùn)算
連接兩個(gè)字符串,用”..”運(yùn)算符。
如果操作數(shù)為數(shù)字,Lua將數(shù)字轉(zhuǎn)換成字符串。
3. 賦值運(yùn)算
多變量一起賦值:
a,b,c,d = ‘www.dbjr.com.cn', ‘Q群: 14624678 ′,1,2
變量交換:
a,b=b,a
在默認(rèn)情況下,變量總是認(rèn)為是全局的。假如需要定義局部變量,則在第一次賦值的時(shí)候,需要用local說明。如:
local a,b,c = 1,2,3
a,b,c都是局部變量。
4. 邏輯運(yùn)算
and, or, not
在Lua中,只有false和nil才計(jì)算為false,其它任何數(shù)據(jù)都計(jì)算為true,0也是true
and 和 or的運(yùn)算結(jié)果不是true和false,而是和它的兩個(gè)操作數(shù)相關(guān)。
a and b:如果a為false,則返回a;a true 返回b
a or b:如果 a 為true,則返回a;a false 返回b
模擬C語言中的語句:x = a? b : c,在Lua中,可以寫成:x = a and b or c。
最有用的語句是: x = x or v,它相當(dāng)于:if not x then x = v end 。
5. 關(guān)系運(yùn)算
< > <= >= == ~=
這些操作符返回的結(jié)果要么false要么true。
==和~=是比較兩個(gè)值,如果兩個(gè)值類型不同,Lua認(rèn)為兩者不同。
Lua比較數(shù)字按傳統(tǒng)的數(shù)字大小進(jìn)行,比較字符串按字母的順序進(jìn)行,但是字母順序依賴于本地環(huán)境。
如果使用關(guān)系運(yùn)算符來比較兩個(gè)table,只有兩個(gè)table是同一個(gè)對象的時(shí)候才能得到預(yù)期的結(jié)果,因?yàn)樽兞恐皇莟able對象的引用,就像指針一樣,不能直接比較存在于table中的值。
> t_a = [ 'www.dbjr.com.cn', 'Q群:14624678 ']
> t_b = [ 'www.dbjr.com.cn', 'Q群:14624678 ']
> if t_a == t_b then
> print("true")
> else
> print("false")
> end
false
t_a與t_b是兩個(gè)完全不同的結(jié)構(gòu)。
> t_a = [ 'www.dbjr.com.cn', '14624678 ']
> t_b = t_a
> if t_a == t_b then
> print("true")
> else
> print("false")
> end
true
t_b指向了同樣的對象t_a。
相關(guān)文章
Lua中__index和__newindex之間的沉默與合作
這篇文章主要介紹了Lua中__index和__newindex之間的沉默與合作,本文著重講解了__index和__newindex之間的聯(lián)系,需要的朋友可以參考下2014-09-09Lua返回一個(gè)Closures函數(shù)實(shí)例
這篇文章主要介紹了Lua返回一個(gè)Closures函數(shù)實(shí)例,本文直接給出代碼實(shí)例,需要的朋友可以參考下2015-04-04Lua 數(shù)學(xué)庫的所有函數(shù)功能作用一覽
這篇文章主要介紹了Lua 數(shù)學(xué)庫的所有函數(shù)功能作用一覽,本文羅列了lua數(shù)學(xué)庫的所有函數(shù),并對每個(gè)函數(shù)的功能作用做了簡短描述,需要的朋友可以參考下2015-06-06