6.5 KiB
6.5 KiB
Maths
暂无介绍...
目录导航
列出了该 package
下所有的函数及类型定义,可通过目录导航进行快捷跳转 ❤️
展开 / 折叠目录导航
包级函数定义
函数名称 | 描述 |
---|---|
Compare | 根据特定表达式比较两个值 |
IsContinuity | 检查一组值是否连续 |
IsContinuityWithSort | 检查一组值排序后是否连续 |
GetDefaultTolerance | 获取默认误差范围 |
Pow | 整数幂运算 |
PowInt64 | 整数幂运算 |
Min | 返回两个数之中较小的值 |
Max | 返回两个数之中较大的值 |
MinMax | 将两个数按照较小的和较大的顺序进行返回 |
MaxMin | 将两个数按照较大的和较小的顺序进行返回 |
Clamp | 将给定值限制在最小值和最大值之间 |
Tolerance | 检查两个值是否在一个误差范围内 |
Merge | 通过一个参考值合并两个数字 |
UnMerge | 通过一个参考值取消合并的两个数字 |
MergeToInt64 | 将两个数字合并为一个 int64 数字 |
UnMergeInt64 | 将一个 int64 数字拆分为两个数字 |
ToContinuous | 将一组非连续的数字转换为从1开始的连续数字 |
CountDigits | 接收一个整数 num 作为输入,并返回该数字的位数 |
GetDigitValue | 接收一个整数 num 和一个表示目标位数的整数 digit 作为输入,并返 |
JoinNumbers | 将一组数字连接起来 |
IsOdd | 返回 n 是否为奇数 |
IsEven | 返回 n 是否为偶数 |
MakeLastDigitsZero | 返回一个新的数,其中 num 的最后 digits 位数被设为零。 |
类型定义
类型 | 名称 | 描述 |
---|---|---|
STRUCT |
CompareExpression | 比较表达式 |
详情信息
func Compare[V generic.Ordered](a V, expression CompareExpression, b V) bool
根据特定表达式比较两个值
func IsContinuity[S ~[]V, V generic.Integer](values S) bool
检查一组值是否连续
示例代码:
func ExampleIsContinuity() {
fmt.Println(maths.IsContinuity([]int{1, 2, 3, 4, 5, 6, 7}))
fmt.Println(maths.IsContinuity([]int{1, 2, 3, 5, 5, 6, 7}))
}
func IsContinuityWithSort[S ~[]V, V generic.Integer](values S) bool
检查一组值排序后是否连续
func GetDefaultTolerance() float64
获取默认误差范围
func Pow(a int, n int) int
整数幂运算
func PowInt64(a int64, n int64) int64
整数幂运算
func Min[V generic.Number](a V, b V) V
返回两个数之中较小的值
func Max[V generic.Number](a V, b V) V
返回两个数之中较大的值
func MinMax[V generic.Number](a V, b V) (min V, max V)
将两个数按照较小的和较大的顺序进行返回
func MaxMin[V generic.Number](a V, b V) (max V, min V)
将两个数按照较大的和较小的顺序进行返回
func Clamp[V generic.Number](value V, min V, max V) V
将给定值限制在最小值和最大值之间
func Tolerance[V generic.Number](value1 V, value2 V, tolerance V) bool
检查两个值是否在一个误差范围内
func Merge[V generic.SignedNumber](refer V, a V, b V) V
通过一个参考值合并两个数字
func UnMerge[V generic.SignedNumber](refer V, num V) (a V, b V)
通过一个参考值取消合并的两个数字
func MergeToInt64[V generic.SignedNumber](v1 V, v2 V) int64
将两个数字合并为一个 int64 数字
func UnMergeInt64[V generic.SignedNumber](n int64) (V, V)
将一个 int64 数字拆分为两个数字
func ToContinuous[S ~[]V, V generic.Integer](nums S) map[V]V
将一组非连续的数字转换为从1开始的连续数字
- 返回值是一个 map,key 是从 1 开始的连续数字,value 是原始数字
示例代码:
func ExampleToContinuous() {
var nums = []int{1, 2, 3, 5, 6, 7, 9, 10, 11}
var continuous = maths.ToContinuous(nums)
fmt.Println(nums)
fmt.Println(continuous)
}
func CountDigits[V generic.Number](num V) int
接收一个整数 num 作为输入,并返回该数字的位数
func GetDigitValue(num int64, digit int) int64
接收一个整数 num 和一个表示目标位数的整数 digit 作为输入,并返 回数字 num 在指定位数上的数值。我们使用 math.Abs() 函数获取 num 的绝对值,并通 过除以10的操作将 num 移动到目标位数上。然后,通过取余运算得到位数上的数值
func JoinNumbers[V generic.Number](num1 V, n ...V) V
将一组数字连接起来
func IsOdd[V generic.Integer](n V) bool
返回 n 是否为奇数
func IsEven[V generic.Integer](n V) bool
返回 n 是否为偶数
func MakeLastDigitsZero[T generic.Number](num T, digits int) T
返回一个新的数,其中 num 的最后 digits 位数被设为零。
- 函数首先创建一个 10 的 digits 次方的遮罩,然后通过整除和乘以这个遮罩来使 num 的最后 digits 位归零。
- 当 T 类型为浮点型时,将被向下取整后再进行转换
查看 / 收起单元测试
func TestMakeLastDigitsZero(t *testing.T) {
for i := 0; i < 20; i++ {
n := float64(random.Int64(100, 999999))
t.Log(n, 3, maths.MakeLastDigitsZero(n, 3))
}
}
CompareExpression STRUCT
比较表达式
type CompareExpression int