结构体设计
当前状态:历史实现探索记录。本文不再代表 Dujie 当前的结构体语言语义。
当前生效的规则应优先参考:类型系统总纲值语义与共享语义表达式与语句
这份旧文档讨论过什么
这份旧方案曾经尝试把 struct 设计成:
- 语言层面的“引用类型”
- 拷贝时共享底层数据
- 后端通过
Arc包装实现共享语义 - 同时支持匿名成员、字段共享更新和方法系统
为什么它已经失效
当前语言设计已经明确:
- Dujie 不再对用户暴露通用“引用类型”分类
- 普通值默认按值语义理解
struct是名义类型,不是共享引用对象- 不支持匿名成员结构体
- 不支持用户自定义方法系统
因此,这份旧方案中的以下内容都不再应被视为现行规范:
struct的默认共享引用语义- 基于
Arc的语言级解释 - 匿名成员结构体设计
- 结构体方法设计
保留本文的原因
保留这份文档只是为了:
- 追溯历史设计思路
- 解释为什么当前设计刻意避开“结构体默认共享”
- 为后端实现探索提供背景材料
当前应看哪里
如果要讨论结构体的当前规则,应查看: