Lua入門教程 2.類型與值

0x02


基礎類型

Lua有總共8種基礎類型:

  • nil
  • boolean
  • number
  • string
  • userdata
  • function
  • thread
  • table

e.g:

print(type("hello"))  -->string
print(type(2))  -->number
print(type(true)) -->boolean
print(type(print))  -->function
print(type(nil))  -->nil
print(type(type(x)))  -->string

1.nil(空)
這個類型只有一個值,主要功能是用於區別其他任何值


2.boolean(布爾)
有兩個值 true 和 false,Lua將false和nil視爲假,而除此之外都視爲真


3.number(數字)
這個類型用於表示實數,Lua沒有整數類型。Lua中的數字可以表示任何32位整數,而不會產生四捨五入的錯誤。
右邊是數字常量的普通寫法:

       4      0.4       4.57e-3       0.3e12      5e+20

4.string(字符串)
Lua中的字符串通常表示一個字符序列,Lua的字符串是不可變的值。不能像在C中那樣直接修改字符串的某個字符,而是應該根據修改要求來創建一個新的字符串

a = "hello world"
b = string.gsub(a, "hello", "good")
print(a)  --> hello world
print(b) --> good world   

字符串的創建和釋放由Lua本身的內存管理控制,無須擔心

還可以用一對匹配的雙括號來界定一個字母字符串,如:

      page = [[
                    <html>
                    <head>
                              test
                    </head>
                    <html>
                    ]]

Lua在對數字和字符串進行操作的時候會自動在字符串上應用算術操作,會嘗試將字符串轉換成一個數字:

         print("10" + 1)  -->轉換成數字
          pritn("10 + 1")
 也會在需要轉換的地方進行向數字的轉換:
      print(10..20) --> 1020  ".." 是字符串連接符

 tonumber函數用於將字符串轉換爲數字,如果嘗試轉換失敗則會返回 nil  e.g tonumber(test)
 #可以用於字符串長度的返回   e.g a = "haha" print(#a) -->4

5.table(表)
table類型實現了“關聯數組“,是一種特殊索引方式的數組,不僅可以用整數來索引,也可以用字符串和其它類型來索引(除了nil)。table即不是值也不是變量,而是對象。
table是通過構造表達式創建。最簡單的創建是{}

    e.g 
     a = { }  --> 創建表
     a["z"] = "ero" -->新條目,key:"z" val:"ero"
     a[20] = "test" -->新條目,key:"20 val:"test"

獲取值的方式:a[“z”] 或者 a.z(這種方式更加方便)

注:a.x和a[x]的區別,前者表示a[“x”],而後者表示以變量x的值來索引table

Lua的索引值習慣以1開始
Lua5.1中,長度操作符”#”用於返回一個數組或線性表的最後一個索引值

     for i =1, #a do
               print(a[i]) --a爲一個字符串數組
           end

6.function(函數)
函數也可以被儲存在變量當中,可以當作參數傳遞,也可以在函數中返回。

變量

1.變量的初始化

Lua中的變量初始化是不用進行類型聲明的,直接進行賦值操作即可:

a = 10
print(a)

func = print
func("Hello World") -->Hello World 這也是合法的

2.變量的銷燬

直接將變量賦值爲nil即可

 hello = "hello world"
 hello = nil --完成了銷燬
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章