1.
變數
變數沒有預定義的型別
,每乙個變數都可能包含任一種型別的值
nillua
中特殊的型別
,乙個全域性型別沒有被賦值以前預設值為
nil,
給全域性變數付
nil可以刪除該變數
boolean兩個取值
false
和true.但
lua中所有值都可以作為條件
,在控制結構的條件中除了
false
和nil
為假,
其他都為真.所以
lua認為
0和空字串都是真.
number
lua中沒有整數
,只有實數.
stringlua是8
位位元組,
所以字串可以包含任何數值字元
,包括嵌入的0
轉義字元:
\a bell \b back space -- 後退
\f form feed --
換頁
\n newline --
換行\r carriage return --
回車
\t horizontal tab --
製表\v vertical tab \\ backslash -- "\"
\" double quote --
雙引號
\' single quote --
單引號\[ left square bracket --
左中括號
\] right square bracket --
右中括號
還可以用
[[…]]
表示字串
,這種形式的字串可以包含多行可以巢狀且不會解釋轉義序列
.
執行時
,lua
會自動在
string
和number
之間自動進行型別轉換
.
2.
算術運算子
二元運算子:
+ - * / ^ (
加減乘除冪)
一元運算子:
- (負值)
這些運算子的運算元都是實數。
3.
關係運算子
< > <= >= == ~= ==
和~=比較兩個值,如果兩個值型別不同
lua認為兩者不同;
nil只和自己相等.
4.
邏輯運算子
and or not
邏輯運算子認為
false
和nil
是假(false
),其他為真,0也是
true.
and的優先順序比
or高。
a and b -- 如果a
為false
,則返回
a,否則返回b
a or b -- 如果a
為true
,則返回
a,否則返回b
c語言中的三元運算子
a ? b : c 在
lua中可以這樣實現:
(a and b) or c
5.
連線運算子
.. --
兩個點字串連線,如果運算元為數字,
lua將數字轉成字串
6.
優先順序
從高到低的順序: ^
not - (unary)
* /+ - ..
< > <= >= ~= ==
and or
除了^和
..外所有的二元運算子都是左連線的。
7.
表的構造
構造器是建立和初始化表的表示式。表是
lua特有的功能強大的東西。最簡單的建構函式是
{},用來建立乙個空表。可以直接初始化陣列
(第乙個元素索引為
1)
不管用何種方式建立
table
,我們都可以向表中新增或者刪除任何型別的域,建構函式僅僅影響表的初始化。
lua相關知識點筆記
require,用於載入檔案,會搜尋環境變數lua path設定的路徑,同時能判斷檔案是否已經載入來避免重複載入。比較奇特的是路徑的設定,與一般的路徑完全不同,其實就是用?當佔位符,然後require filename的時候,用filename代替這些文號,比如 lua c windows usr ...
Lua知識點 基礎 setfenv
1.概述 當我們在全域性環境中定義變數時經常會有命名衝突,尤其是在使用一些庫的時候,變數宣告 可能會發生覆蓋,這時候就需要乙個非全域性的環境來解決這問題。setfenv函式可以滿足我們 的需求。所謂函式的環境,其實乙個環境就是乙個表,該函式被限定為只能訪問該表中的域,或在函 數體內自己定義的變數。1...
Lua知識點 基礎 rawset
1.概述 rawset 2.例項 test.lua window window.prototype window.mt function window.new o setmetatable o window.mt return o endwindow.mt.index window.prototyp...