算術(shù)操作符
1.常規(guī)的算術(shù)操作符:二元的 “ + "," - "," * "," / "钢猛," ^ ", " % ";一元的:“-”(負(fù)號)
2.取模:a%b = a - floor ( a / b ) * b轩缤。對于整數(shù)來說通常是有意義的厢洞。而對于實(shí)數(shù)則可能有其他用途:x%1的結(jié)果是x的小數(shù)部分,而x-x%1結(jié)果是其整數(shù)部分典奉。
關(guān)系操作符
1.關(guān)系操作符:>, <, <=, >= , == , ~= 躺翻。
2.所有關(guān)系操作符的運(yùn)算的結(jié)果都是true或false。
3.任意兩個(gè)值需要類型相同卫玖,值相等才會相等公你。類型不同Lua就人為它們不相等。
4.對于table,userdata和函數(shù)假瞬,作引用比較陕靠。即,當(dāng)它們引用同一個(gè)對象時(shí)才認(rèn)為它們相等脱茉。
5.比較兩個(gè)不同類型值時(shí)需要注意剪芥,字符串是按字母次序作比較的。例如:2<15 -> true琴许,"2"<"15" -> false(因?yàn)槭前凑兆帜复涡騺碜鞅容^的)税肪。
邏輯操作符
1.邏輯操作符:and, or ,not
2.false和nil視為假,其他任何東西視為真。
3.and益兄,第一個(gè)操作數(shù)為假時(shí)返回第一個(gè)操作數(shù)锻梳,反之返回第二個(gè)操作數(shù)。
4.or净捅,第一個(gè)操作數(shù)為真時(shí)返回第一個(gè)操作數(shù)疑枯,反之返回第二個(gè)操作數(shù)。
5.and 和 or 都使用“短路求值(short-cut evaluation)”蛔六,即只會在需要時(shí)才去評估第二個(gè)操作數(shù)荆永。短路求值可以確保像(type(v) == "table" and v.tag == "h1" )這樣的表達(dá)式不會導(dǎo)致運(yùn)行時(shí)錯(cuò)誤(當(dāng)v不是一個(gè)table時(shí),Lua不會對v.tag進(jìn)行求值評估)国章。
6.x = x or v 等價(jià)于 if not x then x = v end(當(dāng)x沒有初始化時(shí)具钥,將其設(shè)為一個(gè)默認(rèn)值v)。
7.not捉腥,只返回true或false氓拼。
優(yōu)先級
1.指數(shù)操作符“^”和連接操作符“..”是“右結(jié)合”你画,其他所有操作符為“左結(jié)合”抵碟。
構(gòu)造式
1.構(gòu)造式是用于創(chuàng)建和初始化table的表達(dá)式。
2.最簡單的構(gòu)造式是空構(gòu)造式 {} 坏匪,用于創(chuàng)建一個(gè)空table,或者初始化數(shù)組拟逮。
3. a = {x = 10, y = 20} ?等價(jià)于 ?a = {}; a.x = 10; a.y = 20;
4.table創(chuàng)建后可以增刪改:
5.鏈表代碼:
6.記錄風(fēng)格的初始化和列表風(fēng)格的初始化混合在一個(gè)構(gòu)造式中:
7.Lua提供一種通用的格式,允許在方括號之間凭迹,顯式地用一個(gè)表達(dá)式來初始化索引值罚屋。
8. { x = 0, y=0 } 等價(jià)于 { ["x"] = 0, ["y"] = 0 }
9.{"r", "g","b"} 等價(jià)于 { [1] = "r", [2] = "g", [3] = "b"}
10.構(gòu)造式中可以用分號代替逗號,區(qū)分構(gòu)造式中不同的成分: