From d687780517572c778784b402a5510feafa88c804 Mon Sep 17 00:00:00 2001 From: orgin Date: Wed, 15 Jun 2022 14:30:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=80=9A=E7=94=A8math?= =?UTF-8?q?=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- util/math/math.go | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 util/math/math.go diff --git a/util/math/math.go b/util/math/math.go new file mode 100644 index 0000000..b1202f1 --- /dev/null +++ b/util/math/math.go @@ -0,0 +1,37 @@ +package math + +type NumberType interface { + int | int8 | int16 | int32 | int64 | float32 | float64 | uint | uint8 | uint16 | uint32 | uint64 +} + +type SignedNumberType interface { + int | int8 | int16 | int32 | int64 | float32 | float64 +} + +type FloatType interface { + float32 | float64 +} + +func Max[NumType NumberType](number1 NumType, number2 NumType) NumType { + if number1 > number2 { + return number1 + } + + return number2 +} + +func Min[NumType NumberType](number1 NumType, number2 NumType) NumType { + if number1 < number2 { + return number1 + } + + return number2 +} + +func Abs[NumType SignedNumberType](Num NumType) NumType { + if Num < 0 { + return -1 * Num + } + + return Num +}