docs/data/core-durationx.md
Measures execution time of a function. Variants return the elapsed duration alongside 0 to 10 returned values from the function.
// 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