Back to Lo

Core Durationx

docs/data/core-durationx.md

1.53.0707 B
Original Source

Measures execution time of a function. Variants return the elapsed duration alongside 0 to 10 returned values from the function.

go
// Base variant (no return values): Duration
elapsedOnly := lo.Duration(func() {
    time.Sleep(3 * time.Millisecond)
})
_ = elapsedOnly

// Zero-return variant: Duration0
elapsed := lo.Duration0(func() {
    time.Sleep(10 * time.Millisecond)
})
_ = elapsed

// One-return variant: Duration1
v, dur := lo.Duration1(func() int {
    time.Sleep(5 * time.Millisecond)
    return 123
})
_ = v
_ = dur

// Two-return variant: Duration2
a, b, elapsed2 := lo.Duration2(func() (int, string) {
    time.Sleep(2 * time.Millisecond)
    return 7, "x"
})
_ = a
_ = b
_ = elapsed2