【问题标题】:Can I select value from table based on function input?我可以根据函数输入从表中选择值吗?
【发布时间】:2019-06-13 02:27:39
【问题描述】:

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

我尝试过静态设置值,然后返回值。我只想使用函数参数来实现。


function CheckWeapon(ped, attachment)
    for k,v in pairs(weapons)do
        if GetHashKey(k) == GetSelectedPedWeapon(ped) then
            print(v.attachment)
            return v.attachment -- This needs to be based on the 
                                -- argument "attachment"
        end
    end
    return false
end

我希望如果我向这个函数提供参数“silencer”,我会在表中收到消音器的相应值。相反,它为零。如果我手动输入 return v.silencer,它仍然可以工作。

【问题讨论】:

    标签: lua


    【解决方案1】:

    在 Lua 中,您可以通过 2 种方式索引表。

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

    您的代码可能如下所示:

    function CheckWeapon(ped, key)-- where key is a string ie: "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"] -- note the space
    sometable["1st_key"] -- note it begins with a number
    

    【讨论】:

      猜你喜欢
      • 2017-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-22
      • 1970-01-01
      • 2021-08-15
      • 1970-01-01
      • 2011-04-09
      相关资源
      最近更新 更多