新版IP库管理阶段性提交(未完成)

This commit is contained in:
GoEdgeLab
2022-08-13 23:55:48 +08:00
parent 0388d6c557
commit 0e411ff59f
42 changed files with 2628 additions and 172 deletions

View File

@@ -9,3 +9,33 @@ func FormatInt64(value int64) string {
func FormatInt(value int) string {
return strconv.Itoa(value)
}
func Max[T int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64](values ...T) T {
if len(values) == 0 {
return 0
}
var max T
for index, value := range values {
if index == 0 {
max = value
} else if value > max {
max = value
}
}
return max
}
func Min[T int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64](values ...T) T {
if len(values) == 0 {
return 0
}
var min T
for index, value := range values {
if index == 0 {
min = value
} else if value < min {
min = value
}
}
return min
}

View File

@@ -0,0 +1,20 @@
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
package numberutils_test
import (
"github.com/TeaOSLab/EdgeAPI/internal/utils/numberutils"
"testing"
)
func TestMax(t *testing.T) {
t.Log(numberutils.Max[int](1, 2, 3))
t.Log(numberutils.Max[int32](1, 2, 3))
t.Log(numberutils.Max[float32](1.2, 2.3, 3.4))
}
func TestMin(t *testing.T) {
t.Log(numberutils.Min[int](1, 2, 3))
t.Log(numberutils.Min[int32](1, 2, 3))
t.Log(numberutils.Min[float32](1.2, 2.3, 3.4))
}