diff --git a/doc/docs.md b/doc/docs.md index cec4a8a45c..631f3fe518 100644 --- a/doc/docs.md +++ b/doc/docs.md @@ -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`.