ternary
ternary copied to clipboard
Ternary syntax for Go; you're welcome
Ternary
Don't write 4 lines of code when 1 will do.
-- Not a Go proverb
This completely useless package uses Go's new generics to add a ternary operator style syntax to Go! You know there have been at least a handful of times where you've quit your working day early because you just could not write one more if
statement. Well now you don't have to, feel free to replace all of your if
statements with this the beautiful and not-confusing-at-all syntax provided by ternary
.
Because this requires Generics, you must be using go 1.18.
Installation
go get github.com/troylelandshields/ternary
Usage
Simple Example
var x = -9
absoluteValue := Give(x).If(x > 0).Else(-x)
fmt.Println(absoluteValue)
Interface Example
type Nameable interface {
Name() string
}
type Cat struct {
name string
}
func (c Cat) Name() string {
return c.name
}
type Dog struct {
name string
}
func (d Dog) Name() string {
return d.name
}
func main() {
var d *Dog
c := &Cat{
name: "Roger",
}
fmt.Println(Give[Nameable](d).If(d != nil).Else(c).Name())
}