Skip to content

Commit

Permalink
add
Browse files Browse the repository at this point in the history
  • Loading branch information
elzup committed Jan 13, 2023
1 parent 17bcee0 commit 90f6f8a
Showing 1 changed file with 25 additions and 1 deletion.
26 changes: 25 additions & 1 deletion content/blog/2023/2023-01-12___python-flag-state.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ published: true
emoji: 🚥
---

Python の enum には Flag という機能があることを知りました。入れ子の状態を表現するのに便利そうだと思い使ってみました
Python の enum には Flag という機能があることを知りました。入れ子の状態(直和集合にあたるもの)を表現するのに便利そうだと思い使ってみました
今回はエアコンの状態を例に説明します。

```mermaid
Expand Down Expand Up @@ -101,3 +101,27 @@ class State(Flag):
State.HeatingWeak in State.Running
> True
```

### Rust の enum

```rust
enum Heating {Weak, Strong }
enum Running { Cooling, Heating(Heating), Dry }
enum State { Off, Running(Running) }

fn main() {
let state = State::Running(Running::Heating(Heating::Strong));
// match する
// State::Running(Running::Heating(Heating::Strong))
// State::Running(Running::Heating(_))
// State::Running(_)
// match しない
// State::Running(Running::Cooling)
// State::Off
```

[enum 超まとめ python3\.10 \- Qiita](https://qiita.com/macinjoke/items/13aa9ba64cf9b688e74a)

[Rust の enum の集合論的な見方:直和集合としての enum](https://zenn.dev/exyrias/articles/d8b56fc900900b4238a9)

[Swift の Enum で見る代数的データ型ついて \- Qiita](https://qiita.com/kz_morita/items/d6da40446ec22635c457#%E7%9B%B4%E5%92%8C%E5%9E%8B%E3%81%AE%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88)

0 comments on commit 90f6f8a

Please sign in to comment.