2
18 分钟
Docs 0.94.0-alpha.1 (Draft)

现实对象、主体与状态

学习目标:写出第一个 world,声明对象、状态与主体。

world
object
state
subject

三个最基本的声明

world hello_reality {
  object greeting {
    state text: String = "尚未问候"
  }

  subject operator "human:reader"

  transform greet by operator {
    guard greeting.text != "已问候"
    effect greeting.text = "已问候"
  }
}
  • world:作用域。一组对象、主体与约束共同构成一个世界。
  • object:被指称的现实实体,其 state 是可观测取值。
  • subject:能够发起变化并承担责任的行为者。主体标识必须带类型前缀(human: / agent: / system:)。
  • transform ... by <subject>:候选变换。没有主体的变换不合法

guard 与 effect

guard 是提交前必须成立的条件;effect 描述候选现实的状态变化。 注意:写下 effect 不等于现实已经改变,它只是候选。

动手练习

为 greeting 增加一个 language 状态(String,默认 "zh"),并在变换中把它改为 "zh-Hans"。

在 Playground 中编译验证
理解检查

为什么每个 transform 都必须绑定 subject?

下一课