仅添加到表中的10个值

时间:2018-05-30 06:27:00

标签: lua

我如何才能添加到表中最多10个用户? 因为我在txt中保存了scoretbl,而且这个文件有100行:/所以我想只保存10个用户。

我不知道如何检查表格中是否有用户名,并且不在表格中添加此用户或不添加此用户名并添加?

示例:

class Pen {
    struct Private;
    Private *pImpl = nullptr;
public:
    Pen() noexcept = default;
    Pen(Pen &&other) noexcept : pImpl{std::exchange(other.pImpl, {})} {}
    Pen(const Pen &other) : pImpl{new Private{*other.pImpl}} {} // assumes valid `other`
    Pen &operator=(Pen &&other) noexcept {
        Pen(std::move(other)).swap(*this);
        return *this;
    }
    Pen &operator=(const Pen &other) {
        Pen(other).swap(*this);
        return *this;
    }
    void swap(Pen &other) noexcept {
        using std::swap;
        swap(pImpl, other.pImpl);
    }
    int width() const { return pImpl->width; }
    // ...
};

// upd:也许是修复用户名?

local scoretbl = {}
local num = 0
for i=1, 10 do
    table.insert(scoretbl,{'Name '..i, 100 + num})
    num = num + 100
end

local function AddToTable(name, score)
    if table.HasValue(scoretbl,name) then return end // hmm its not work ?
        table.insert(scoretbl,{name, score})
end

AddToTable('User 55', 5454)// 11 user
AddToTable('User 55', 5454)// check: only one username in table

AddToTable('User 32', 5454)// 12 user

local function ShowOnly10()
table.sort( scoretbl, function( a, b ) return a[2] > b[2] end )

//table.remove(scoretbl,#scoretbl) remove last index in table, if i need only 10 value, i need delete in cycle ?

    for k, v in pairs(scoretbl) do
        print(k ,v[1], v[2])
    end
end
ShowOnly10()

1 个答案:

答案 0 :(得分:1)

我建议您使用Lua的哈希表,SELECT * FROM table WHERE REPLACE(columnName, ":", "") LIKE "like_expression"; v.namev.scorev[1]更容易阅读。

函数v[2]不存在。你必须自己写。

如果只想打印前十个元素,则只应迭代前十个元素(如果长度少于十个元素,则应该超过表格的长度)。

Lua中的行注释以table.HasValue开头,而不是--

//