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

686 B

Composition Expression

composition expression は、複数の値・制約・構造を合成する式である。

&

& は制約を保った合成を行う。

Port = Int & >= 1 & <= 65535;
Config = MyConfig & { port = 8000; };

object 同士では片側だけにある field も保持するため、& は方向を持たない。 左辺が右辺より狭いことを確認し、右辺を field domain として合成したい場合は as を使う。

//

// は右辺優先の構造的 patch を行う。

Patched = Base // {
    feature_hoge.enable = false;
};

詳細は 合成演算子 に置く。