Back to Lo

Core Switch

docs/data/core-switch.md

1.53.0804 B
Original Source

Starts a functional switch/case/default chain using a predicate value.

go
result := lo.Switch(2).Case(1, "1").Case(2, "2").Default("3")
// "2"

Case

Adds a Case branch to a Switch chain returning a constant result.

go
result := lo.Switch(1).Case(1, "1").Default("?")
// "1"

CaseF

Adds a Case branch that lazily computes its result.

go
result := lo.Switch(2).CaseF(2, func() string {
    return "2"
}).Default("?")
// "2"

Default

Completes the Switch chain by providing a default result when no Case matched.

go
result := lo.Switch(42).Default("none")
// "none"

DefaultF

Function form of Default. Lazily computes the default result when no Case matched.

go
result := lo.Switch(0).Case(1, "1").DefaultF(func() string {
    return "3"
})
// "3"