Lua 語法筆記 1

2021-07-23 19:00:25 字數 2785 閱讀 7893

lua 是一種動態型別的語言。在語言中沒有型別定義的語法,每個值都」攜帶「了它自身的型別資訊。

lua中有 8 種基礎型別: nil(空)、boolean(布林)、number(數字)、string(字串)、userdata(自定義型別)、function(函式)、thread(執行緒)和table(表)。

lua 中可以通過 type() 來得到 值 的型別。

print(type("hello world"));     -->string

print(type(10.4*3)); -->number

print(type(type)); -->function

print(type(true)); -->boolean

print(type(nil)); -->nil

值得一提的是,在 lua 中,只有nilfalse為假,除此之外的值均為 「真」。

類似陣列的東西,但不是陣列(關聯陣列),我認為table的本質就是儲存了索引值的特殊陣列。

注意:索引從1開始。

a = 

}print(a.name); -->小明

print(a[1].x); -->0

print(a[2].x); -->nil

table可以使用任何型別當索引值

用預設數字索引

local a = 

print(a[1]); -->12

local b =

print(b[1]); -->12

用table索引

local a = 

,}

用function索引

function

test

() print("hello table");

endlocal a = ;

print(a[test]);

lua的算術操作符基本沒有什麼改變,只是有一些新的操作符

「^」(指數),」%」(取摸)

a % b == a - floor(a / b) * b;

x % 1 (取x的小數部分),x - x%1(取x整數部分),x - x%0

.01(x精確到小數點後兩位)

x = math.pi; -->π

print(x - x%1); -->3

lua裡面使用 「..」 連線字串

print("a".."b".."c".."d");      -->abcd

print("a"..1); -->a1

print("a" + 1); -->非法,報錯

lua提供了以下關係操作符:

其中 ~= 用於不等性測試,== 用於等性測試。需要注意的是 nil 只與其自身相等。

對於 table,userdata和函式,lua是作引用比較的。只有當它們引用的同乙個物件時,才相等。

a = {}; a.x = 1; a.y = 0;

b = {}; b.x = 1; b.y = 0;

c = a;

print(a == c); -->

true

print(a == b); -->

false

對兩個字串作大小性比較時,按照字母次序比較字串。具體的字母次序取決於對lua的區域設定。

邏輯操作符有 and、 or、 not。

and:如果它的第乙個運算元為假,就返回第乙個運算元,否則返回第二個運算元。

or: 如果它的第乙個運算元為真,就返回第乙個運算元,否則返回第二個運算元。

print(4

and5); -->5

print(4

or5); -->4

x = x or v; 等價於:if

not x then x = v end;

(a and b ) or c; 等價於: a ? b : c;

lua允許 「多重賦值」,也就是一下子將多個賦值予多個變數。每個值或每個變數之間以逗號分隔。

a, b = 10, 2;               -->賦值後,變數a = 10,b = 2。

x, y = y, x; -->交換x與y。

a[i], a[j] = a[j], a[i]; -->交換a[i]與a[j]。

a, b, c = 0, 1;

print(a, b, c); -->0 1 nil

a, b = a+1, b+1, b+2; -->其中 b+2 會被忽略

print(a, b) -->1 2

假設函式 f() 有兩個返回值

a, b =f();
a接收第乙個,b接收第二個。

lua 語法筆記

建立檔案 helloworld.lua,內容如下 print hello world 執行指令碼 lua helloworld.lua 單行注釋 兩個減號 注釋 多行注釋 多行注釋 多行注釋 索引訪問 t i t.i 當索引為字串型別時的一種簡化寫法 gettable event t,i 採用索引訪...

Lua學習筆記 基本語法

print hello world 輸出的結果為 hello world print hello world 這是單行注釋 print hello world 使用兩個減號與兩個中括號來進行多行注釋並以中括號結尾 lua表示符用來定義乙個變數,並且表示符的選取有相關規則。表示符一般使用字母或者下劃線...

lua筆記1 配置lua環境

將assets資料夾下所有東西全部拷貝到自己資料夾下開啟專案可以看到選單欄多了乙個xlua 開啟巨集 file build settings player settings other settings scriptsing define symbols輸入hotfix enable 再觀察xlua...