通过引用插入Lua表格

我想在表格中添加一个变量,然后在单个变量中查看所做的更改。我认为问题出现是因为当我将变量插入到表格中时,它是按值传递的。

现在我在表格中将一个元素设置为nil,但我想要关联的变量没有被修改。我怎样才能关联这些值,以便下一个程序打印“是nil”,而不是“不是nil”。

tab = {}

x = 2
y = 4

table.insert(tab, x)
table.insert(tab, y)

for i = 1 , #tab do
    tab[i] = nil
end

if x == nil then print("is nil")
else  print("is not nil") end

已解决:

这是解决方案。将变量转换为表格。问题是由于[1]索引而使语法变得丑陋。我将看看是否可以隐藏它,因为我在我的脚本中将经常使用这些变量,并且我不想一直使用[]索引仅限于一个变量。

tab = {}

x = {2}
y = {4}

table.insert(tab, x)
table.insert(tab, y)

for i = 1 , #tab do
    tab[i][1] = nil
end

if x[1] == nil then print("is nil")
else  print("is not nil") end
点赞
用户258523
用户258523

你不能用 Lua 这样做。唯一具有引用语义的是表和用户数据。

如果你将一个表赋值给 tab,那么修改该表的字段将从原始变量和 tab 中可见。

2014-05-09 20:05:40