您可以在表格中保存实例吗?

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

[当我尝试在表中保存具有相同名称的实例时,它将覆盖它而不是创建第二个键。我们不能将其保存为参考吗?

我尝试做的例子:

local t = {}


local model1 = Instance.new("Model")
local model2 = Instance.new("Model")

t[model1] = model1
t[model2] = model2
lua roblox
1个回答
0
投票

当然可以,可以将模型用作键或值,它可以正常工作。

local model1 = Instance.new("Model")
local model2 = Instance.new("Model")
print(model1 == model2) -- false

local t = {}

-- use the models as keys
t[model1] = "a"
t[model2] = "b"
print(t[model1], t[model2], t[model1] == t[model2]) -- a, b, false

-- use the models as values
t["a"] = model1
t["b"] = model2
print(t["a"], t["b"], t["a"] == t["b"]) -- Model, Model, false

-- use the models as keys and values
t[model1] = model1
t[model2] = model2
print(t[model1], t[model2], t[model1] == t[model2]) -- Model, Model, false

-- show all the keys stored in the table
t = {}
t[model1] = model1
t[model2] = model2
for k, v in pairs(t) do
    print(k, v)
end
--[[ prints out :
    Model Model (x2)
]]

最后一个示例显示密钥索引中没有冲突,并且两个模型都正确存储。可能很难看到区别,因为两个模型的名称相同。

话虽这么说,将模型存储为键和值both]都没有多大意义,因为如果您可以访问键,那么您已经拥有了模型。

TL; DR:您的代码可以正常工作。

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