Lua-初始化空表的正确方法

Lua-初始化空表的正确方法,lua,Lua,Lua的区别是什么: table[1] = var table = { var } 为什么第二种选择更安全?如果表或var在这两种情况下都为零,会发生什么?谢谢 不要命名您的表表表格是Lua的表格库 表[1]=var实际上不会创建新表。它将把var分配给表库表中的字段1 您需要先创建一个表,然后才能插入字段 localt={var}创建一个包含单个元素的新表var。如果var为零,则该表为空 local t = {} t[1] = var 执行相同的操作,但分两步执行。它们都不是“更安全的

Lua的区别是什么:

table[1] = var 
table = { var }

为什么第二种选择更安全?如果表或var在这两种情况下都为零,会发生什么?谢谢

不要命名您的表
<代码>表格
是Lua的表格库

表[1]=var
实际上不会创建新表。它将把var分配给表库表中的字段1

您需要先创建一个表,然后才能插入字段

localt={var}
创建一个包含单个元素的新表
var
。如果
var
为零,则该表为空

local t = {}
t[1] = var
执行相同的操作,但分两步执行。它们都不是“更安全的”。第一个比较短,不需要手动为元素编号


在某些情况下,如果要引用表构造函数,则无法初始化表构造函数中的字段。

不要命名表
<代码>表格
是Lua的表格库

表[1]=var
实际上不会创建新表。它将把var分配给表库表中的字段1

您需要先创建一个表,然后才能插入字段

localt={var}
创建一个包含单个元素的新表
var
。如果
var
为零,则该表为空

local t = {}
t[1] = var
执行相同的操作,但分两步执行。它们都不是“更安全的”。第一个比较短,不需要手动为元素编号


在某些情况下,如果要引用表构造函数,则无法初始化表构造函数中的字段。

对我来说,表的最佳构造函数就是:
setmetatable()

它返回第一个参数,并将第二个参数设置为metatable

在控制台中玩游戏的示例

#/usr/local/bin/lua-i
Lua 5.4.3版权所有(C)1994-2021 Lua.org,临市局里约
>--空桌子
>my_table=setmetatable({},空)
>我的桌子
表:0x56677820
>--名称为的空表
>my_table=setmetatable({},{uu name='my_table'})
>我的桌子
我的表格:0x56677850
>--具有_名称和_索引表元方法的空表
>my_table=setmetatable({},{uu name='my_table',uu index=table})
>my_表:插入(math.pi)
>我的桌子:concat()
3.1415926535898
还有我最喜欢的析构函数:
my_table=empty

要仅从现有表中销毁元表,请使用:

my\u table=setmetatable(my\u table,empty)

对我来说,表的最佳构造函数就是:
setmetatable()

它返回第一个参数,并将第二个参数设置为metatable

在控制台中玩游戏的示例

#/usr/local/bin/lua-i
Lua 5.4.3版权所有(C)1994-2021 Lua.org,临市局里约
>--空桌子
>my_table=setmetatable({},空)
>我的桌子
表:0x56677820
>--名称为的空表
>my_table=setmetatable({},{uu name='my_table'})
>我的桌子
我的表格:0x56677850
>--具有_名称和_索引表元方法的空表
>my_table=setmetatable({},{uu name='my_table',uu index=table})
>my_表:插入(math.pi)
>我的桌子:concat()
3.1415926535898
还有我最喜欢的析构函数:
my_table=empty

要仅从现有表中销毁元表,请使用:
my\u table=setmetatable(my\u table,空)