能否基于函数输入从表格中选择值?

我想知道是否可以基于函数的参数从表格中选择一个值。

我已经尝试过静态设置值,那样返回的就是该值。我只想使用函数参数来完成这件事。


function CheckWeapon(ped, attachment)
    for k,v in pairs(weapons)do
        if GetHashKey(k) == GetSelectedPedWeapon(ped) then
            print(v.attachment)
            return v.attachment -- 这需要基于“attachment”的参数
        end
    end
    return false
end

我期望如果我向这个函数提供参数“消音器”,我会收到与表格中的消音器对应的值。但实际上它是nil。如果我手动输入return v.silencer,则可以工作。

点赞
用户7396148
用户7396148

在 Lua 中,你可以用两种方法来索引一个表。

如你所做的那样,你可以使用 .,比如 sometable.key,但这只是索引的另一种方法 sometable["key"] 的语法糖。这两种方法都使用字符串 key 来索引表。

你的代码可能会像这样:

function CheckWeapon(ped, key)--其中的 key 是一个字符串,例如:“attachment”
    for k,v in pairs(weapons)do
        if GetHashKey(k) == GetSelectedPedWeapon(ped) then
            print(v[key])
            return v[key]
        end
    end
    return false
end

使用 sometable["key"] 选项也允许使用不能通过 . 访问的键,比如

sometable["my key"] --注意到那个空格
sometable["1st_key"] --注意到它以数字开始
2019-06-12 18:27:39