技術共有

lua 入門 (3) - 変数

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Lua は複数の変数を代入します

ルアですね複数の変数を同時に代入する、変数は渡されません。値渡しのみ


テストプログラム:

  1. Lua 对多个变量同时赋值,不会进行变量传递,仅做值传递:
  2. 测试程序:
  3. -- 对多个变量同时赋值不会进行变量传递,仅做值传递
  4. a ,b = 0,1
  5. a,b = a+1,a+1
  6. print(a,b) -- 输出 1, 1
  7. a ,b = 0,1
  8. a,b = b+1,b+1
  9. print(a,b) -- 输出 2, 2
  10. a ,b = 0,1
  11. a = a+1
  12. b = a+1 -- 不同时赋值就可以
  13. print(a,b) -- 输出 1, 2

操作結果:

ローカル変数とグローバル変数

テストプログラム

  1. a = 5
  2. local b = 1
  3. function joke()
  4. c = 5 -- 全局
  5. local d = 6
  6. end
  7. print(c,d)
  8. joke()
  9. -- print(c,d)
  10. -- 注意"nil" 也要加上 "" 匹配
  11. print("c = " .. (c or "nil") .. " d =" .. (d or "nil"))
  12. print("c = " .. tostring(c) .. " d = " .. tostring(d))
  13. do
  14. local a = 6 -- 这里的a是局部变量,区别于外部的全局变量a
  15. b = 6 -- 对局部变量b进行赋值
  16. print("局部里面 a = " .. tostring(a) .. " b = " .. tostring(b))
  17. end
  18. print("局部外面 a = " .. tostring(a) .. " b = " .. tostring(b))

実行結果

代入文

割り当てルール

 
変数の数と値の数が一致しない場合、Lua は常に変数の数に基づいて次の戦略を採用します。

a. 変数の数 > 値の数に応じて nil を補います。
b. 変数の数 < 値の数は無視されます。

テストプログラム

  1. a, b, c = 0, 1
  2. print(a,b,c) --> 0 1 nil
  3. a, b = a+1, b+1, b+2 -- value of b+2 is ignored
  4. print(a,b) --> 1 2
  5. a, b, c = 0
  6. print(a,b,c) --> 0 nil nil

実行結果

索引

テストプログラム

  1. site = {}
  2. site["key"] = "mxjun nice!"
  3. print(site["key"])
  4. print(" ======================= ")
  5. print(site.key)

実行結果