2022-07-14 18:34:50 +03:00
|
|
|
# Options
|
2020-03-05 23:52:54 +03:00
|
|
|
|
2023-03-30 19:23:22 +03:00
|
|
|
Type Option represents an optional value: every Option is either Some and contains a value, or None, and does not.
|
2021-04-23 20:54:31 +03:00
|
|
|
Option types are very common in Rust code, as they have a number of uses:
|
2023-03-30 19:23:22 +03:00
|
|
|
|
2021-04-23 20:54:31 +03:00
|
|
|
- Initial values
|
|
|
|
- Return values for functions that are not defined over their entire input range (partial functions)
|
|
|
|
- Return value for otherwise reporting simple errors, where None is returned on error
|
|
|
|
- Optional struct fields
|
|
|
|
- Struct fields that can be loaned or "taken"
|
|
|
|
- Optional function arguments
|
|
|
|
- Nullable pointers
|
|
|
|
- Swapping things out of difficult situations
|
2020-03-05 23:52:54 +03:00
|
|
|
|
2021-04-23 20:54:31 +03:00
|
|
|
## Further Information
|
2020-03-05 23:52:54 +03:00
|
|
|
|
|
|
|
- [Option Enum Format](https://doc.rust-lang.org/stable/book/ch10-01-syntax.html#in-enum-definitions)
|
|
|
|
- [Option Module Documentation](https://doc.rust-lang.org/std/option/)
|
|
|
|
- [Option Enum Documentation](https://doc.rust-lang.org/std/option/enum.Option.html)
|
2021-04-24 13:12:49 +03:00
|
|
|
- [if let](https://doc.rust-lang.org/rust-by-example/flow_control/if_let.html)
|
|
|
|
- [while let](https://doc.rust-lang.org/rust-by-example/flow_control/while_let.html)
|