Files
lo/docs/data/core-switch.md
T
Nathan Baulch e7386d9246 lint: fix inconsistent callback function parameter names (#730)
* Fix linting

* Use is.ElementsMatch

This will ignore the ordering of the final intersection. Especially
important when checking old versions of go that do not guarantee an order
when iterating through maps.

* lint: fix inconsistent callback function parameter names

* lint: rename "iteratee" to "transform" for *Map helpers

* lint: rename "project" parameters to "transform"

* lint: rename "cb" parameters to "callback"

* lint: rename "iteratee" to "callback" for ForEach helpers

---------

Co-authored-by: Franky W. <frankywahl@users.noreply.github.com>
Co-authored-by: Samuel Berthe <dev@samuel-berthe.fr>
2025-11-06 18:05:11 +01:00

1.5 KiB

name, slug, sourceRef, category, subCategory, playUrl, variantHelpers, similarHelpers, position, signatures
name slug sourceRef category subCategory playUrl variantHelpers similarHelpers position signatures
Switch switch condition.go#L101 core condition https://go.dev/play/p/TGbKUMAeRUd
core#condition#switch
core#condition#case
core#condition#casef
core#condition#default
core#condition#defaultf
core#condition#if
core#condition#ternary
core#condition#validate
20
func Switch[T comparable, R any](predicate T) *switchCase[T, R]
func (s *switchCase[T, R]) Case(val T, result R) *switchCase[T, R]
func (s *switchCase[T, R]) CaseF(val T, callback func() R) *switchCase[T, R]
func (s *switchCase[T, R]) Default(result R) R
func (s *switchCase[T, R]) DefaultF(callback func() R) R

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

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.

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

CaseF

Adds a Case branch that lazily computes its result.

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.

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

DefaultF

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

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