doc: enum methods (#10572)

pull/10602/head
Rémi 2021-06-28 16:25:02 +03:00 committed by GitHub
parent 806719786f
commit 625dc6e0ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 44 additions and 0 deletions

View File

@ -2675,6 +2675,50 @@ fn main() {
}
```
Enums can have methods, just like structs
```v
enum Cycle {
one
two
three
}
fn (c Cycle) next() Cycle {
match c {
.one {
return .two
}
.two {
return .three
}
.three {
return .one
}
}
}
mut c := Cycle.one
for _ in 0 .. 10 {
println(c)
c = c.next()
}
```
Output:
```
one
two
three
one
two
three
one
two
three
one
```
#### Dynamic casts
To check whether a sum type instance holds a certain type, use `sum is Type`.