在Lua有什么像指针吗?

Kry*_*ian 7 lua pointers

我是Lua的新手,我想创建一个表[doh],它可以存储以下值:

parent.child[1].value = "whaterver"
parent.child[2].value = "blah"
Run Code Online (Sandbox Code Playgroud)

但是,大多数情况下,通常只有一个孩子,所以访问这个值会更容易:

parent.child.value
Run Code Online (Sandbox Code Playgroud)

为了使事情更简单,我想以某种方式存储我的价值观

parent.child[1].value == parent.child.value
Run Code Online (Sandbox Code Playgroud)

但要做到这一点,我必须将此值存储在内存中两次.我有什么方法可以做到这一点,所以:

parent.child.value points to parent.child[1].value
Run Code Online (Sandbox Code Playgroud)

没有将值存储在内存中两次?

另外一个问题是,如何检查表占用多少内存?

Mic*_*man 10

但是该值将存储为字符串,因此它是一个需要在两个地方而不是表格中引用的字符串.

首先,所有类型(除布尔值,数字和光用户数据)的引用-如果t是一个表,你这样做t2 = t,那么这两个tt2是在内存中的同一个表引用.

第二件事 - 字符串在Lua中实现.这意味着所有相等的字符串,例如"abc",结果"ab".."c"实际上是一个字符串.Lua还只存储对字符串的引用.所以你不应该担心内存 - 一次只有一个字符串实例.

你可以安全地做parent.child.value = parent.child[1].value,你只会在一个表中使用一个内存(几个字节),不会复制任何字符串,只会被引用.