lua程式設計 資料型別和操作符

2021-06-25 12:41:57 字數 2751 閱讀 8363

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...