erg/doc/zh_CN/syntax/14_set.md
2022-09-06 09:29:14 +09:00

47 lines
No EOL
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Set
[![badge](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fgezf7g7pd5.execute-api.ap-northeast-1.amazonaws.com%2Fdefault%2Fsource_up_to_date%3Fowner%3Derg-lang%26repos%3Derg%26ref%3Dmain%26path%3Ddoc/EN/syntax/14_set.md%26commit_hash%3D06f8edc9e2c0cee34f6396fd7c64ec834ffb5352)](https://gezf7g7pd5.execute-api.ap-northeast-1.amazonaws.com/default/source_up_to_date?owner=erg-lang&repos=erg&ref=main&path=doc/EN/syntax/14_set.md&commit_hash=06f8edc9e2c0cee34f6396fd7c64ec834ffb5352)
一个Set代表一个集合它在结构上是一个重复的无序数组。
```python
assert Set.from([1, 2, 3, 2, 1]) == {1, 2, 3}
assert {1, 2} == {1, 1, 2} # 重复的被自动删除
assert {1, 2} == {2, 1}
```
Set可以执行集合操作。
```python
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}
```
Set是同质集合。 为了使不同类的对象共存,它们必须同质化
```python
s: {Int or Str} = {"a", 1, "b", -1}
```
## Sets为类型
Sets也可以被视为类型。 这种类型称为 _枚举类型_
```python
i: {1, 2, 3} = 1
assert i in {1, 2, 3}
```
Set的元素直接是类型的元素。
请注意这些Set本身是不同的。
```python
mut_set = {1, 2, 3}.into {Int; !3}
mut_set.insert!(4)
```
<p align='center'>
<a href='./13_record.md'>上一页</a> | <a href='./15_type.md'>下一页</a>
</p>