neilisaac / first

Return the first non-nil, non-empty argument

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

first

Hi. I like to add fallback logic to my programs, but sometimes it's awkward.

I wrote this little library so we can write:

use(first.String(os.Getenv("CONFIG_FIELD_NAME"), "some sort of default"))

as opposed to:

configValue := os.Getenv("CONFIG_FIELD_NAME")
if configValue == "" {
    configValue = "some sort of default"
}
use(configValue)

First also supports:

  • frist.String("arbitrary", "numbers", "of", "arguments")
  • s := "pointers"; first.String(&s)
  • first.String(func() { return "functions returning strings" })
  • Interfaces with a String() string method
  • first.Error(err1, err2)

Don't panic().

About

Return the first non-nil, non-empty argument

License:MIT License


Languages

Language:Go 100.0%