lua從入門到放棄 四 變數

2021-10-07 10:18:04 字數 2030 閱讀 7031

變數在使用前,必須顯式地宣告變數,即建立該變數.

編譯程式在執行**之前編譯器需要知道如何給語句變數開闢儲存區,用於儲存變數的值.

lua變數有三種型別:全域性變數,區域性變數,表中的域.

lua中的變數全是全域性變數,哪怕是語句塊和函式裡,除非顯式地用local宣告為區域性變數.

區域性變數的作用域為從宣告位置開始到所在語句塊結束.

變數的預設值均為nil.

a = 6

local b = 12

function cd(

) c = 7

local d = 14

endcd(

)print(a) ---全域性變數 6

print(b) ---區域性變數 12

print(c) ---全域性變數 7

print(d) ---區域性變數 nil

賦值是改變乙個變數的值和表域的最基本的方法

[root@iz2zeg7wauly0hl9qmxvwlz lua]

# lua

> a =

'hello'

..'world'

> print(a)

helloworld

>

lua可以對多個變數同時賦值,變數列表和值列表的各個元素以逗號分開,賦值語句右邊的值分別賦給左邊的變數

[root@iz2zeg7wauly0hl9qmxvwlz lua]

# lua

> a,b=10,20

> print(a,b)

10 20

>

遇到賦值語句lua會先計算右邊的值然後再進行賦值操作,所以可以這樣交換變數的值

[root@iz2zeg7wauly0hl9qmxvwlz lua]

# lua

> a,b=10,20

> a,b=b,a

> print(a,b)

20 10

>

當變數個數和值的個數不一致時,lua會以變數的個數為基礎採取一下策略

變數個值個數     按變數個數補足nil

變數個數值個數 多餘的值會被忽略

[root@iz2zeg7wauly0hl9qmxvwlz lua]

# lua

> a,b,c=1,2

> print(a,b,c)

1 2 nil

> a,b=2,4,6

> print(a,b)

2 4

>

多值賦值經常用來變數交換或將函式的呼叫結果返回給變數

a,b=f(

)

函式f返回兩個值,乙個給a,乙個給b

應該盡量使用區域性變數,這有兩個好處:

避免命名衝突

訪問區域性變數比全域性變數要快

對table的索引使用方括號,lua也提供了.操作

t[i]

t.i -- 當索引為字串型別時的一種簡化寫法

gettable_event(t,i) -- 採用索引訪問本質上是乙個類似這樣的函式呼叫

[root@iz2zeg7wauly0hl9qmxvwlz lua]

# lua

> a=

> a[

'key']=

'value'

> print(a[

'key'])

value

> print(a.key)

value

>

lua從入門到放棄 五 lua迴圈

lua語言提供了以下幾種迴圈方式 迴圈型別 描述while迴圈 在條件為true時,迴圈地執行某些語句,在執行前會先判斷條件是否為true for迴圈 重複執行指定語句,重複次數可在for語句中控制 repeat util 重複執行迴圈,直到指定的條件為真為止 迴圈巢狀 可以在迴圈內巢狀乙個或多個迴...

lua從入門到放棄 八 lua運算子

運算子是乙個特殊的符號,用於告訴直譯器執行特定的數學或邏輯運算.lua提供了以下幾種運算子型別 算術運算子 關係運算子 邏輯運算子 其它運算子 下表列出了lua語言中的常用算術運算子,假設a為10,b為20 操作符描述例項 加號a b 30 減號 a b 10 乘號 a b 200 除號 a b 0...

Go語言從入門到放棄 變數

使用關鍵字var var v1 int 整型 var v2 string 字串 var v3 10 int 陣列 var v4 int 陣列切片 var v5 struct var v6 int 指標 var v7 map string map,key為string型別,value為int型別還有一...