使用用户输入(io.read)作为Lua函数参数

用葡萄牙语制作

好的,基本上我有这个函数:

function perfil(monstro)
 print(monstros.monstro.nomeM)
 print(monstros.monstro.racaM)
 print(monstros.monstro.generoM)
 print(monstros.monstro.idadeM)
 print(monstros.monstro.descM)
end

还有这个表格:

monstros = {
  Esqueleto = {nomeM = "Skeletran", racaM = "Esqueleto", generoM = "F", idadeM = "455", descM = "'我已经死了,但还不够!'"},
  Zumbi = {nomeM = "布鲁斯桑托斯", racaM = "僵尸", generoM = "M", idadeM = "19", descM = "'需要一个17厘米的大脑'"},
  Sirena = {nomeM = "Alamellia", racaM = "美人鱼", generoM = "F", idadeM = "18", descM = "'我的歌最好听!鼓舞人心的歌手 :-D'"},
  Ogro = {nomeM = "Crak", racaM = "食人魔", generoM = "M", idadeM = "34", descM = "'hngbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbyæ'"},
  Dragoa = {nomeM = "SUZANA", racaM = "龙", generoM = "F", idadeM = "1367", descM = "'我喜欢红色的花朵'"}
  }

我想让io.read输入更改函数perfil中的参数monstro。 抱歉,如果解决方案很简单,我对编程和Lua都很新。 还有,如果我的代码有错误或不好的地方,请告诉我!(我知道我需要使用这个来表示重音符号

点赞
用户12514997
用户12514997

这是您要寻找的吗?

function perfil(monstro)
 monstro = monstros[monstro] --取输入并在表中查找相应的键
 print(monstro.nomeM)        --打印该键对应的“nomeM”
 print(monstro.racaM)
 --... 以此类推
end

perfil(io.read())   --调用函数io.read()并将输入作为参数

我不知道您实际想要做什么,但根据您的需求,您可以按如下方式遍历它们:

function perfil(monstro)
 print(monstro)
 for key, value in pairs(monstros[monstro]) do
  print("Key:", key, "Value:", value)
 end
end

perfil('Ogro')

输出:

Ogro
Key:    idadeM  Value:  34
Key:    generoM Value:  M
Key:    racaM   Value:  Ogro
Key:    descM   Value:  'hngbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbyæ'
Key:    nomeM   Value:  Crak
2020-02-11 18:41:32