Categorygithub.com/nebiros/optional
repositorypackage
0.1.0
Repository: https://github.com/nebiros/optional.git
Documentation: pkg.go.dev

# README

Optional

A GO's "generics" version of Optionals, pretty much borrowed from Java's JDK11, but probably more "idiomatic", to avoid panics at runtime.

Usage

import (
    "github.com/nebiros/optional"
)

func main() {
    var (
        v   *string
        tmp = "something"
    )
    
    v = &tmp
    
    ov := optional.OfNillable(v)

    err := doSomething(ov)
    if err != nil {
        panic(err)
    }
}

func doSomething(s Optional[string]) error {
    if !s.IsPresent() {
        return fmt.Errorf("v not present")
    }
    
    sv, err := s.Get()
    if err != nil {
        return err
    }
    
    fmt.Println("sv: " + sv)
}