一、數據類型
1、概述
Lua是動態類型語言,變量沒有類型定義,只需要爲變量賦值。 而變量的類型則由賦值給它的值決定。值可以存儲在變量中,作爲參數傳遞或結果返回
2、類型分類
數據類型 |
含義 |
nil |
這個最簡單,只有值nil屬於該類,表示一個無效值(在條件表達式中相當於false) |
boolean |
布爾值 包含 true和false |
number |
表示雙精度類型的實浮點數 |
string |
字符串由一對雙引號或單引號來表示。用 2 個方括號 "[[]]" 來表示"一塊"字符串 |
function |
方法 |
userdata |
表示任意存儲在變量中的C數據結構 |
thread |
表示執行的獨立線路,用於執行協同程序 |
table |
關聯數組 |
3、如何查看數據類型
3.1、使用命令type
二、類型案例
1、nil(空)
A、nil 類型表示一種沒有任何有效值,它只有一個值 -- nil,例如打印一個沒有賦值的變量,便會輸出一個 nil 值
B、對於全局變量和 table,nil 還有一個"刪除"作用,給全局變量或者 table 表裏的變量賦一個 nil 值,等同於把它們刪掉
1.1、例子
執行結果:
2、boolean(布爾)
boolean 類型只有兩個可選值:true(真) 和 false(假),Lua 把 false 和 nil 看作是"假",其他的都爲"真"。(0和空字符串也都爲真)
2.1、例子
執行結果:
3、number(數字)
Lua 默認只有一種 number 類型 -- double(雙精度)類型
3.1、例子
執行結果
4、string(字符串)
字符串由一對雙引號或單引號來表示,也可以用 2 個方括號 "[[]]" 來表示"一塊"字符串
4.1、例子
執行結果
5、function(函數)
Lua中,函數可以封裝好的語句集,也是可以某個變量的值
5.1、例子
執行結果
6、table(關聯數組)
table 的創建是通過"構造表達式"來完成,最簡單構造表達式是{},用來創建一個空表
6.1、例子
執行結果
三、常見問題
1、類型轉換
1.1、整形與字符串轉換
A、整形轉換爲字符串
使用命令tostring 或者使用連接符..
例子:
B、字符串轉換爲整形
使用命令tonumber
2、table引用區別
2.1、a.x 和a[x]的區別
a.x是以字符串x的值來索引a,等價於 a['x']
a[x]是以變量x來索引a
2.2、例子