使用一个变量作为键来调用表中的一个值

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

在我的代码中,我想做一个脚本,在这个脚本中,你偷了一辆车,把它送来,并为这辆车得到一定的钱。我做了一个表格,定义了每辆车能得到多少钱。我可以让钥匙工作,所以我的脚本确实可以识别汽车。

local cars = {

    ["panto"] = '5',
    ["oracle"] = '10',
    ["felon"] = '15',
    ["sentinel"] = '20',
    ["ratloader"] = '25',
    ["dune"] = '30',
    ["buccaneer"] = '35'

}

这是表格,然后我将其转换。

local voertuigen = {}
for k,_ in pairs(cars) do
    table.insert(voertuigen, k)

我是荷兰人,所以我用了一些荷兰变量,有点混乱,还在努力中;)

voertuig = (voertuigen[math.random(1, #voertuigen)])

这一部分写在if语句里面,但这不是问题,当我试图引用到 voertuig 作为一个键,因为它是一个变量,键存储在其中,所以不能使用。

salaris = cars.voertuig

当我想自己解决这个问题的时候,我看到了 print(cars.oracle) (表中的一个键)确实有效,但当我使用

voertuig = oracle
print(cars.voertuig)

它的返回。SCRIPT ERROR: @carjob/cj_client.lua:114: attempt to concatenate a nil value (upvalue 'voertuig')

我希望我提供的代码足够让你理解,我希望你们中的一个人可以帮助我。 先谢谢你!

variables lua key
1个回答
2
投票

请注意字符串值和变量的区别。

local a = {"name"}

a.name 是语法糖的 a["name"]

在你的例子中 vertuig = oracle 相当于 voertuig= nil 因为 oracle 是一个零值。

cars.voertuig也是nil。因为你从未给 cars["voertuig"].

你想做这样的事情:

vertuig = "oracle"
print(cars[voertuig])

哪儿 cars[voertuig] 决心 cars["oracle"]

请参考Lua手册,了解如何正确索引表值。

voertuig = (voertuigen[math.random(1, #voertuigen)])
salaris = cars[voertuig]

同时尽可能使用局部变量。

© www.soinside.com 2019 - 2024. All rights reserved.