【问题标题】:How can I change the original variable in lua如何更改lua中的原始变量
【发布时间】:2021-02-28 19:31:54
【问题描述】:

我想更改原始变量,以便函数打印不同的答案。我是 Lua 新手,这可能吗?我该怎么做?

这是我的代码:

io.write("Hello, what is your first player's name? ")
local name = io.read()
io.write('How old is Player 1? ')
local age = io.read()

function Recall()
    print("Your player's name: " ,name, "\nYour player's age: " ,age, "\n")
end

Recall()

io.write("What is your second player's name? ")
local name = io.read()
io.write('How old is Player 2? ')
local age = io.read()

Recall()

当我第二次调用该函数时,它会在第一个输入中打印姓名和年龄。有什么建议吗?

【问题讨论】:

    标签: function variables lua var


    【解决方案1】:

    您创建了新的本地人并失去了对同名本地人的访问权限。

    要解决此问题,请删除第二个 name 和第二个 age 附近的 local。 (靠近Player2)。

    作为替代解决方案,您可以为 Recall 函数设置参数并在其中传递参数。

    【讨论】:

      【解决方案2】:

      正确的想法,只需稍微调整一下,就不会使用相同的变量

      io.write("Hello, what is your first player's name? ")
      local name1 = io.read()
      io.write('How old is Player 1? ')
      local age1 = io.read()
      
      function Recall( name, age )
          print("Your player's name: ", name, "\nYour player's age: ", age, "\n")
      end
      
      Recall( name1, age1 )
      
      io.write("What is your second player's name? ")
      local name2 = io.read()
      io.write('How old is Player 2? ')
      local age2 = io.read()
      
      Recall( name2, age2 )
      

      【讨论】:

      • 哦,谢谢,我试过这样做,但我不明白你如何使用括号内的东西。
      • 这些变量充当局部范围,特定于该函数,在它之外的任何地方都不存在。如果你愿意,你可以重用变量名,如果这正是你想要的,但有时这会混淆值,尤其是在开始时,所以当你尝试学习时,最好为新项目使用唯一的名称。
      猜你喜欢
      • 1970-01-01
      • 2018-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-30
      • 2013-03-06
      • 1970-01-01
      • 2021-10-12
      相关资源
      最近更新 更多