You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MoonScript中类的四种字段声明方式有何区别?

MoonScript中SomeClass类四种字段声明的区别

以下是四种声明方式的核心差异:

  • a : {}:实例成员字段
    每个SomeClass的实例都会拥有独立的a字段,初始值为新的空表。不同实例的a相互独立,修改其中一个实例的a不会影响其他实例。

  • @b : {}:类静态成员字段
    这是绑定在SomeClass类本身的属性,不属于任何实例。所有实例访问@b(或通过SomeClass.b)时,都会指向同一个空表。修改这个值会影响所有访问它的地方。

  • c = {}:类定义作用域内的局部变量
    仅在SomeClass的类定义代码块内部可见,实例和外部代码都无法访问。它是类定义过程中的私有临时变量,只有类定义时的代码(比如类内方法若捕获了它)能使用,类定义完成后外部无法触及。

  • @d = {}:类静态成员字段(等价于@b : {})
    和@b : {}效果完全一致,都是给SomeClass类本身添加静态属性d。只是写法不同:冒号语法是键值对式声明,等于号是直接赋值式声明,最终都会将空表绑定到类的d属性上。

内容的提问来源于stack exchange,提问作者Dess

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 20:27:00