gpt4 book ai didi

arrays - 向表添加元素时遇到问题(Lua 中的数组)

转载 作者:行者123 更新时间:2023-12-03 03:19:22 25 4
gpt4 key购买 nike

我正在尝试创建一个表作为用户的小型数据库:

users = {}

function create_new_user()
print("Enter a unique user name (up to 12 letters): ")
local name = io.read()
if #name > 12 then
print ("That name is too long.")
return create_new_user()
elseif users[name] then
print ("That name is already in use.")
return create_new_user()
else
table.insert(users, 1, name)
print("Your new user name is: ", users[name])
end
end

我从手册中了解到该行

table.insert(users, 1, name)

会将 name 的字符串值作为 users 数组的元素插入。情况并非如此——每当我运行脚本时,我都会得到以下输出:

Your new user name is:   nil

最佳答案

您将元素插入表中,但您试图检索由 name 的值索引的值,这不是您存储的内容(您正在使用 users[name] 而不是 users[1])。你也许可以这样做:

table.insert(users, name)
print("Your new user name is: ", name)

请注意,table.insert(users, 1, name) 可能不会执行您期望的操作,因为这会将元素添加到表中。如果您以这种方式插入 "abc""def",则 users 表将包含元素 {"def", "abc"}(按此特定顺序)。要检索最后插入的元素,您可以使用users[1]

如果您想以不同的顺序存储值,则需要使用table.insert(users, name),它将附加元素到表中。要检索最后一个元素,您可以使用users[#users]

如果你总是想将添加的元素存储在表格的第一个位置,那么你可以简单地使用users[1] = name

关于arrays - 向表添加元素时遇到问题(Lua 中的数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25272615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com