1、lua支援以下幾種變數型別
print(type("string")) string
print(type(10)) number
print(type(print)) function
print(type(true)) boolean
print(type({})) table
print(type(nil)) nil
2、lua變數是弱型別的,賦值什麼型別,就是什麼型別
3、nil
在lua裡nil表示null,對於定義乙個變數未賦值則是nil,對於想要刪除乙個變數,則將此變數賦值為nil即可
4、布林值
lua將nil和false視為假,其他都是真,所以數字0和空字串也為真
5、數字
lua的數字沒有整形,都是浮點型
6、字串
不能像c那樣直接修改字串的某乙個位置的值,而是需要建立乙個新的字串
例如:a = "one string"
b = string.gsub(a, "one", "another")
print(a) -- one string
print(b) -- another string
注意:--表示lua的注釋,lua用--[[ --]] 來表示注釋塊
在lua中操作100k或1mb的字串是很常見的事情,可以使用單引號或者雙引號來表示lua字串
lua還提供了字串和數字自動轉換
print("10"+1) -- 11
print(10+1") -- "10+1"
print("-5.3e-10"*"2") -- -1.06e-09
print("hello"+1) -- 錯誤不能轉換
7、..是lua中字串連線操作符,當你直接在乙個數字後面使用它時,必須加上空格,否則會理解為乙個點
8、字串和數字互相轉換
tonumber()
tostring()
同樣也可以使用 數字加上空字串來強制轉換字串,例如 10 .. ''
使用 -0 來強制轉換數字 「10」 - 0
9、獲取字串長度,在字串前加上#號
10、表-table
在lua中使用{}來表示乙個表,即物件
a = {}
k = "x"
a[k] = 0; -- key 為 「x」, 值為0
a[20] = "great" -- key為20, 值為great
print(a["x"]) -- 10
k=20
print(a[k]) -- great
具體用法和其他動態語言無異
11、lua中table的賦值是引用賦值
12、迴圈
a={}
for i=1,1000
do a[i] = i*2
end13、返回talbe最後乙個key值可以用#
例如返回上面的a的最後乙個key也就a的長度
print(#a)
14、lua習慣使用1開始陣列第乙個而不是0,因為#一般返回最後乙個的key所以作為陣列的長度,table.getn()也返回一樣的結果。
15、table.maxn返回乙個table的最大正索引
16、注意10,「10」和「+10」這3個表示不同的key,也就是可以再table中儲存不同的資料,盡量避免這樣儲存他們
17、函式可以儲存在變數中,可以作為引數傳遞
18、lua可以呼叫c語言編寫的函式
19、lua中的算術表示式^表示取指數
比如 a = 3
a^3表示3的3次方,為27
20、x - x%0.01表示精確到小數點後兩位的結果,其他依次類推
21、使用 ~= 來表示不等於
23、與,或,非表示and,or,not
22、x = x or v 等價於
if not x
then
x = v
end23、類似於c語言的三元運算子:
c語言:max = a>b ? a : b
lua: max = (x>y) and x or y
24、操作符not永遠只返回true或者false,not nil 返回true
25、優先順序:
^not,#,-(一元)
*,/,%
+,-..
<,>,<=,>=,~=,==
andor
26、talbe構造式:
days=
則表示days[1] = "one"
days[2] = "
two"
days[3] = "
three"
27、table構造式2:
a =
等價於a={}
a.x = 1
a.y = 2
28、table寫出鍊錶**:
list=nil
for line in io.lines() do
list =
end
然後我們可以這樣讀取每行的內容
local l = list
while l do
print(l.value)
l=l.next
end29、還可以混合儲存key和陣列例如下面,利用分號隔開a=
print(a.a) --1
print(a[1]) --2
十一 偽指令 資料型別 操作符
功能 定義乙個段,segment指明段的開始,ends指明段的結束。語法 段名字 segment。段名字 ends 例項 daima segment mov ax,1234h mov ax,4c00h daima ends shuju segment 放一些資料 shuju ends 語法 assu...
Lua程式語言資料型別
lua程式語言的資料型別大致有nil,bool,string,number,table,function等,這些比較常用,下面就我自己學習的進行總結,僅限自己總結,沒有寫到的說明還沒有學習到,哈哈哈 nil型別,就是表示空的意思,乙個沒有賦值的變數,資料型別就是nil,用type 函式可以檢視乙個沒...
操作符 字串操作符 和 型別轉換操作符
一 字串操作符 對於 的使用,當所有值都是數字的時候,執行計算處理 當有乙個是字元型別的時候,就將數字轉換為string字串進行拼接處理。二 型別轉換操作符 public class text 結果 int above 0.7 0 math.round above 0.7 1 int below 0...