From b1ec5b1e3f30b082ecc9738af09eab4adef0a517 Mon Sep 17 00:00:00 2001 From: makki_d Date: Mon, 2 Sep 2024 02:31:35 +0900 Subject: [PATCH] small optimization --- elementat.go | 6 ++++-- last.go | 6 ++++-- max.go | 3 --- min.go | 3 --- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/elementat.go b/elementat.go index d881588..02f8af3 100644 --- a/elementat.go +++ b/elementat.go @@ -19,8 +19,10 @@ func ElementAt[T any, E IEnumerable[T]](src E, n int) (def T, err error) { // ElementAtOrDefault returns the element at a specified index in a sequence or a default value if the index is out of range. func ElementAtOrDefault[T any, E IEnumerable[T]](src E, n int) (T, error) { v, err := ElementAt(src, n) - if isOutOfRange(err) { - err = nil + if err != nil { + if isOutOfRange(err) { + err = nil + } } return v, err } diff --git a/last.go b/last.go index c81fef8..20e9aab 100644 --- a/last.go +++ b/last.go @@ -21,8 +21,10 @@ func Last[T any, E IEnumerable[T]](src E) (def T, _ error) { // LastOrDefault returns the last element of a sequence that satisfies a condition, or a specified default value if no such element is found. func LastOrDefault[T any, E IEnumerable[T]](src E, defaultValue T) (T, error) { v, err := Last(src) - if isInvalidOperation(err) { - return defaultValue, nil + if err != nil { + if isInvalidOperation(err) { + return defaultValue, nil + } } return v, err } diff --git a/max.go b/max.go index ad6cf20..a8f8ec8 100644 --- a/max.go +++ b/max.go @@ -20,9 +20,6 @@ func Max[T constraints.Ordered, E IEnumerable[T]](src E) (def T, _ error) { } return def, err } - if err != nil { - return def, err - } if v > max { max = v } diff --git a/min.go b/min.go index fdc24bf..9b0874d 100644 --- a/min.go +++ b/min.go @@ -20,9 +20,6 @@ func Min[T constraints.Ordered, E IEnumerable[T]](src E) (def T, _ error) { } return def, err } - if err != nil { - return def, err - } if v < min { min = v }