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

ES15:Record存储数组、Tuple存储对象是否合法?

Record与Tuple定义合法性解答

1. 给定Record定义的合法性判断

先看你提供的代码:

const user = #{
  name: "Avyukt",
  age: 39,
  hobbies: ['sleeping', 'eating', 'crying'] // 是否可添加数组
}

这个定义不合法。Record作为不可变数据结构,要求所有属性值只能是*原始值(字符串、数字、布尔值、null、undefined、Symbol)*或者其他Record/Tuple类型。而代码中的hobbies是普通数组——属于可变引用类型,内部元素可被修改,不符合Record对不可变值的约束,无法通过语法校验。

2. 给定Tuple定义的合法性判断

再看你提供的Tuple代码:

const user = #[ 
    { name: "Avyukt", age: 1 }, // 是否可添加对象作为值
    { name: 'Reyansh', age: 5 } 
]

这个定义不合法。Tuple同样是不可变数据结构,其元素必须是原始值或者Record/Tuple类型。代码中的元素是普通对象——属于可变引用类型,对象的属性值可被修改,违背了Tuple的不可变设计原则,不符合语法要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 21:54:51