代码拉取完成,页面将自动刷新
package streams
import "errors"
type Number interface {
~int | ~int64 | ~float64
}
type NumberStream[N Number] struct {
stream[N]
}
func (ns *NumberStream[N]) Sum() N {
var sum N = 0
for _, i := range ns.list {
sum += i
}
return sum
}
func (ns *NumberStream[N]) Max() N {
if len(ns.list) == 0 {
panic(errors.New("空列表,没有元素"))
}
if len(ns.list) == 1 {
return ns.list[0]
}
max := ns.list[0]
for i := 1; i < len(ns.list); i++ {
cur := ns.list[i]
if max < cur {
max = cur
}
}
return max
}
func (ns *NumberStream[N]) Min() N {
if len(ns.list) == 0 {
panic(errors.New("空列表,没有元素"))
}
if len(ns.list) == 1 {
return ns.list[0]
}
min := ns.list[0]
for i := 1; i < len(ns.list); i++ {
cur := ns.list[i]
if min > cur {
min = cur
}
}
return min
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。