仕様を満たした型
を設計する
仕様を型で表現する
「ある値が、この型に属している場合は、仕様を満たしている」ということを表現できるような型を設計する
その言語の型システムの能力にも大きく依存する
仕様
key/valueのペアのリストを扱いたい
keyに重複がないことを満たしたい
安直にやると、
[(key, value)]のようなデータ構造になる
しかし、これだけ見ると、リスト内でkeyに重複がないことは判別できない
重複がないことを確証するためには別途validationが必要になる
仕様を満たしたデータ構造を使う
Map key valueを使えばいい
Mapはkeyに重複がないことを保証している
型を見れば、keyに重複がない、ということを理解できる
例
例えば、数値の1~5のみ許容する型とか
関連
参考