mirror of
https://github.com/erg-lang/erg.git
synced 2025-09-29 20:34:44 +00:00
1.6 KiB
1.6 KiB
セット
セットは集合を表し、データ構造的には重複、順序のない配列です。
assert Set.from([1, 2, 3, 2, 1]) == {1, 2, 3}
assert {1, 2} == {1, 1, 2} # 重複は自動で削除される
assert {1, 2} == {2, 1}
セットは集合演算を行えます。
assert 1 in {1, 2, 3}
assert not 1 in {}
assert {1} or {2} == {1, 2}
assert {1, 2} and {2, 3} == {2}
assert {1, 2} not {2} == {1}
セットは等質なコレクションです。別のクラスのオブジェクトを共存させるためには、等質化させなくてはなりません。
s: {Int or Str} = {"a", 1, "b", -1}
型としてのセット
セットは型としても扱えます。このような型は 列挙型(Enum type) と呼ばれます。
i: {1, 2, 3} = 1
assert i in {1, 2, 3}
セットの要素がそのまま型の要素になります。 セット自身は違うことに注意が必要です。
mut_set = {1, 2, 3}.into {Int; !3}
mut_set.insert!(4)