Files
Decodal/doc/manual/souce/language/expression/composition.md
T

28 lines
692 B
Markdown

# Composition Expression
composition expression は、複数の値・制約・構造を合成する式である。
## `&`
`&` は制約を保った合成を行う。
```dcdl
Port = Int & >= 1 & <= 65535;
Config = MyConfig & { port = 8000; };
```
object 同士では片側だけにある field も保持するため、`&` は方向を持たない。
左辺が右辺より狭いことを確認し、右辺を field domain として合成したい場合は [`as`](./ascription.md) を使う。
## `//`
`//` は右辺優先の構造的 patch を行う。
```dcdl
Patched = Base // {
feature_hoge.enable = false;
};
```
詳細は [合成演算子](../operators.md) を参照する。