当前位置: 首页 > 知识库问答 >
问题:

lua中的.调用和[]取成员对象有区别吗?

燕鸿波
2024-06-14

我试了一下,对于普通的table类型,比方说.

local t={}t["a"]=123print(t.a)

使用t.a就可以用到t["a"].
但这是适用于所有情况吗?包括如果t是一个用lua机制实现的类的对象,a是t的成员数据,这样的话正常地讲可以用t.a获取到a,但能用t["a"]吗?如果我非要用"a"这个字符串获取到t.a这个成员数据,这样可行吗?

共有1个答案

孟品
2024-06-14

t.a 等价于 t["a"]

lua 里只有一个 table 数据类型,取成员的方式实际只有[]t["a"] 可以简写为 t.a

有些时候简写不了,比如 t[1] ,或者 t["if"] (关键字,不能写成 t.if

 类似资料:
  • 本文向大家介绍Lua中使用.和:调用函数的区别,包括了Lua中使用.和:调用函数的区别的使用技巧和注意事项,需要的朋友参考一下 tb.print和tb:print的含义略微不同,:调用函数会多传递进去一个self进去,差不多相当于OOP里面的成员函数调用. 但是和OOP里面成员函数/非成员函数不同的是,lua里面的非成员函数.调用,他不是静态的. tb对象有一个print function成员,当

  • 问题内容: 我有类GUI,因此可以创建如下对象: 和像这样的参考变量: 现在,据我所知,g2是引用GUI类的引用变量,而g1是GUI类的对象。g1和g2有什么区别?我可以将GUI类的属性与对象一起使用,但是g2的可能用法是什么? 问题答案: 参考是名称。对象就是东西。您可以为事物使用不同的名称,即使对于实际上不存在的事物也可以使用不同的名称。 您可以声明名称,而无需实际给它们任何“真实的”含义,例

  • 问题内容: 我正在使用Eclipse来帮助我清理一些代码以正确使用Java泛型。大多数时候,它在推断类型方面做得非常出色,但是在某些情况下,推断类型必须尽可能地通用:对象。但是Eclipse似乎给了我一个选择,可以选择对象类型还是“?”类型。 那么之间有什么区别: 和 问题答案: 匹配项的实例,但不是。假设你要编写一个接受到任何内容的映射的方法:如果你要编写 你无法提供。如果你写 有用! 在Jav

  • 本文向大家介绍Lua中调用函数使用点号和冒号的区别,包括了Lua中调用函数使用点号和冒号的区别的使用技巧和注意事项,需要的朋友参考一下 本文是面向对象预热篇,讲解函数两种调用方式的区别,初学者比较容易被坑。 1.初学者最易混乱Top1——调用函数时用点号还是用冒号? 我们来看看下面的两句代码: 对于初次接触Lua的朋友来说,这简直就是噩梦,为嘛函数的调用有两种形式,是让我们随便挑的意思吗?   这

  • 问题内容: 我是一个自学成才的python用户(有点。)。我读了很多书,以加深我对python的了解。今天 我遇到一条文字: 类和对象 所以我想知道python中的对象和类之间有什么区别。我教过所有类都是对象,但是在那种情况下,作者不会使用短语“类和对象”。我很困惑… 问题答案: 这是面向对象编程中两个紧密相关的术语。标准含义是 对象 是 类 的实例。

  • 问题内容: 因此,我正在重构代码以实现更多的OOP。我设置了一个类来保存页面属性。 稍后,我像这样调用set_page_title()函数 当我收到错误消息时: 调用非对象上的成员函数set_page_title() 那我想念什么呢? 问题答案: 这意味着它不是对象的实例。我们可以看到您用来初始化变量的代码吗? 当您期望特定的对象类型时,还可以使用PHP的类型提示功能 Docs 在违反逻辑时得到错