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(a V, expression CompareExpression, b V) bool
根据特定表达式比较两个值
func IsContinuity(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(values S) bool
检查一组值排序后是否连续
func GetDefaultTolerance() float64
获取默认误差范围
func Pow(a int, n int) int
整数幂运算
func PowInt64(a int64, n int64) int64
整数幂运算
func Min(a V, b V) V
返回两个数之中较小的值
func Max(a V, b V) V
返回两个数之中较大的值
func MinMax(a V, b V) (min V, max V)
将两个数按照较小的和较大的顺序进行返回
func MaxMin(a V, b V) (max V, min V)
将两个数按照较大的和较小的顺序进行返回
func Clamp(value V, min V, max V) V
将给定值限制在最小值和最大值之间
func Tolerance(value1 V, value2 V, tolerance V) bool
检查两个值是否在一个误差范围内
func Merge(refer V, a V, b V) V
通过一个参考值合并两个数字
func UnMerge(refer V, num V) (a V, b V)
通过一个参考值取消合并的两个数字
func MergeToInt64(v1 V, v2 V) int64
将两个数字合并为一个 int64 数字
func UnMergeInt64(n int64) (V, V)
将一个 int64 数字拆分为两个数字
func ToContinuous(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(num V) int
接收一个整数 num 作为输入,并返回该数字的位数
func GetDigitValue(num int64, digit int) int64
接收一个整数 num 和一个表示目标位数的整数 digit 作为输入,并返 回数字 num 在指定位数上的数值。我们使用 math.Abs() 函数获取 num 的绝对值,并通 过除以10的操作将 num 移动到目标位数上。然后,通过取余运算得到位数上的数值
func JoinNumbers(num1 V, n ...V) V
将一组数字连接起来
func IsOdd(n V) bool
返回 n 是否为奇数
func IsEven(n V) bool
返回 n 是否为偶数
func MakeLastDigitsZero(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