Documentation
¶
Index ¶
- type Option
- func (o Option[T]) IsNone() bool
- func (o Option[T]) IsSome() bool
- func (o Option[T]) MarshalJSON() ([]byte, error)
- func (o Option[T]) String() string
- func (o *Option[T]) UnmarshalJSON(data []byte) error
- func (o Option[T]) Unwrap() T
- func (o Option[T]) UnwrapOr(value T) T
- func (o Option[T]) UnwrapOrElse(f func() T) T
- func (o Option[T]) UnwrapOrZero() T
- func (o Option[T]) Value() (T, bool)
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Option ¶
type Option[T any] struct { // contains filtered or unexported fields }
Option represents an optional value. The Some variant contains a value and the None variant represents the absence of a value.
func (Option[T]) IsNone ¶
IsNone returns true if the Option does not contain a value.
Example ¶
package main
import (
"fmt"
"github.com/BooleanCat/go-functional/option"
)
func main() {
fmt.Println(option.Some(4).IsNone())
fmt.Println(option.None[int]().IsNone())
}
Output: false true
func (Option[T]) IsSome ¶
IsSome returns true if the Option contains a value.
Example ¶
package main
import (
"fmt"
"github.com/BooleanCat/go-functional/option"
)
func main() {
fmt.Println(option.Some(4).IsSome())
fmt.Println(option.None[int]().IsSome())
}
Output: true false
func (Option[T]) MarshalJSON ¶ added in v0.9.0
func (*Option[T]) UnmarshalJSON ¶ added in v0.9.0
func (Option[T]) Unwrap ¶
func (o Option[T]) Unwrap() T
Unwrap returns the underlying value of a Some variant, or panics if called on a None variant.
Example ¶
package main
import (
"fmt"
"github.com/BooleanCat/go-functional/option"
)
func main() {
fmt.Println(option.Some(4).Unwrap())
}
Output: 4
func (Option[T]) UnwrapOr ¶
func (o Option[T]) UnwrapOr(value T) T
UnwrapOr returns the underlying value of a Some variant, or the provided value on a None variant.
Example ¶
package main
import (
"fmt"
"github.com/BooleanCat/go-functional/option"
)
func main() {
fmt.Println(option.Some(4).UnwrapOr(3))
fmt.Println(option.None[int]().UnwrapOr(3))
}
Output: 4 3
func (Option[T]) UnwrapOrElse ¶
func (o Option[T]) UnwrapOrElse(f func() T) T
UnwrapOrElse returns the underlying value of a Some variant, or the result of calling the provided function on a None variant.
Example ¶
package main
import (
"fmt"
"github.com/BooleanCat/go-functional/option"
)
func main() {
fmt.Println(option.Some(4).UnwrapOrElse(func() int {
return 3
}))
fmt.Println(option.None[int]().UnwrapOrElse(func() int {
return 3
}))
}
Output: 4 3
func (Option[T]) UnwrapOrZero ¶
func (o Option[T]) UnwrapOrZero() T
UnwrapOrZero returns the underlying value of a Some variant, or the zero value on a None variant.
Example ¶
package main
import (
"fmt"
"github.com/BooleanCat/go-functional/option"
)
func main() {
fmt.Println(option.Some(4).UnwrapOrZero())
fmt.Println(option.None[int]().UnwrapOrZero())
// Output
// 4
// 0
}
func (Option[T]) Value ¶
Value returns the underlying value and true for a Some variant, or the zero value and false for a None variant.
Example ¶
package main
import (
"fmt"
"github.com/BooleanCat/go-functional/option"
)
func main() {
value, ok := option.Some(4).Value()
fmt.Println(value)
fmt.Println(ok)
}
Output: 4 true