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

Unison中创建记录是否支持指定字段名及对应值?

Unison是否支持通过指定字段名及对应值的方式创建记录

支持。

Unison的记录是特殊的代数数据类型,官方文档提到的「创建记录值无需指定字段名、无额外开销」,指的是按位置传参的默认构造方式:只要传入参数的顺序、类型和记录定义时的字段顺序完全匹配,就可以直接构造实例,不需要额外书写字段名。

你偏好的显式指定字段名的构造方式完全可用,语法为在构造函数后跟随大括号,在大括号内以字段名 = 值的格式逐个赋值即可,参考示例:

-- 定义示例Volunteer记录类型
type Volunteer = Volunteer { name: Text, serviceHours: Nat, isActive: Bool }

-- 显式指定字段名构造,不需要严格匹配类型定义里的字段顺序
myVolunteer = Volunteer {
  isActive = true,
  name = "李明",
  serviceHours = 136
}

这种写法的实际特性:

  • 不强制要求字段书写顺序和类型定义顺序一致,只要所有必填字段都完成赋值、值的类型匹配即可正常编译
  • 没有额外运行时开销,编译后的逻辑和按位置传参构造的记录完全一致
  • 非常适合字段数量较多、相邻字段类型相同的场景,能避免参数顺序错位导致的逻辑错误,可读性优势明显,是实际开发中很常用的写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 10:54:48