Обмен технологиями

Начало работы с 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 всегда будет применять следующую стратегию, основанную на количестве переменных:

а. Количество переменных > количества значений. Дополняется нулем в зависимости от количества переменных.
б. Количество переменных <количество значений. Лишние значения будут игнорироваться.

тестовая программа

  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)

текущий результат