在Lua中将用户输入(io.read)用作函数参数

问题描述 投票:0回答:1

葡萄牙语对不起

好,所以基本上我有这个功能:

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 = "'Estou morta mas não o suficiente!'"},
  Zumbi = {nomeM = "Bruce Santos", racaM = "Zumbi", generoM = "M", idadeM = "19", descM = "'Prociza ter umh celbro de 17 centismotros       .'"},
  Sirena = {nomeM = "Alamellia", racaM = "Sirena", generoM = "F", idadeM = "18", descM = "'Minhas canções são as melhores! Inspirante á Cantora :-D'"},
  Ogro = {nomeM = "Crak", racaM = "Ogro", generoM = "M", idadeM = "34", descM = "'hngbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbyæ'"},
  Dragoa = {nomeM = "SUZANA", racaM = "DRAGÂO", generoM = "F", idadeM = "1367", descM = "'GOOSTO DE FLORESS VERMELHHAS'"}
  }

并且我想使io.read输入更改功能monstro上的参数perfil。抱歉,如果解决方案很简单,我对编程和Lua还是陌生的。另外,如果我的代码中有错误或不良情况,请告诉我! (我知道我需要在重音符号上使用this

lua
1个回答
0
投票

这是您要寻找的吗?

function perfil(monstro)
 monstro = monstros[monstro] --take the input and find the matching key in the table
 print(monstro.nomeM)        --print the corresponding 'nomeM' for that key
 print(monstro.racaM)
 --... and so on
end

perfil(io.read())   --call the function io.read() and take the input as parameter

我不知道您实际上打算使用这些键做什么,但是根据您的需要,您可以像这样迭代它们:

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
© www.soinside.com 2019 - 2024. All rights reserved.