如何使用用户输入来调用变量

我正在处理的文件非常混乱,所以我要使用这个代替

a = 1
b = 2
c = 3
user_input =

我希望能够在终端中写入 b 并获得 2 的返回 我尝试了所有不同的 io 函数,但我不想使用 print ……如果这很愚蠢简单,那我是个新手(正在学习) 另外,请不要直接告诉我如何解决这个问题,只是给我指点迷津,谢谢

点赞
用户5248453
用户5248453

我想你的意思是:

如果 (用户输入 == "b"){
打印 b
}
2020-10-16 04:07:28
用户6632736
用户6632736

由于您使用了全局变量 abc,您可以将它们表示为 _G[var]

var = io.read()
print _G[var]

此外,在 Lua 5.1 中,您可以使用 getfenv()/setfenv(),在 Lua 5.2+ 中,您可以使用 _ENV 来避免污染全局范围(请参阅http://lua-users.org/wiki/EnvironmentsTutorial)。

2020-10-16 04:24:52
用户12412289
用户12412289

如果你想要根据用户输入输出一些东西,你可以创建一个表格,例如:

values = {
['a'] = 1,
['b'] = 2,
['c'] = 3,
--继续添加你想要的条目
}

然后你只需要简单地打印用户输入的索引位置的值即可:

if values[user_input] then --在尝试打印前,确保索引是有效的
    print(values[user_input])
end
2020-10-16 04:28:26
用户3342050
用户3342050
#! /usr/bin/env lua

local table = {}
table.a = 1
table.b = 2
table.c = 3

local function test_inclusion()
    io.write('key: ')
    key = io.read()

    if table[key] then
        value = table[key]
        io.write('value: ' ..value ..'\n')
    end
end

test_inclusion()
2020-10-21 08:20:52