go-opt/README.md

49 lines
946 B
Markdown
Raw Normal View History

2017-05-18 18:20:02 +00:00
# go-opt
2022-08-08 17:01:41 +00:00
Package **opt** implements an **optional-type**, for the Go programming language.
2017-05-18 18:20:02 +00:00
2022-08-08 17:01:41 +00:00
In other programming languages, an **optional-type** might be know as: a **option type**, or a **maybe type**.
2017-05-18 18:20:02 +00:00
## Documention
Online documentation, which includes examples, can be found at: http://godoc.org/github.com/reiver/go-opt
[![GoDoc](https://godoc.org/github.com/reiver/go-opt?status.svg)](https://godoc.org/github.com/reiver/go-opt)
2022-08-08 17:14:51 +00:00
## Examples
Here is an example **optional-type** that can hold a string:
```go
var op opt.Optional[string] // the default value is nothing.
// ...
if opt.Nothing[string]() == op {
fmt.Println("nothing")
}
// ...
switch op {
case op.Nothing[string]():
//@TODO
case op.Something("apple"):
//@TODO
case op.Something("banana"):
//@TODO
case op.Something("cherry"):
//@TODO
default:
//@TODO
}
// ...
value, found := op.Get()
if {
fmt.Println("VALUE:", value)
} else {
fmt.Println("nothing")
}
```