Go语言中无内置取绝对值函数,整型切片推荐手动遍历判断符号取反,避免math.Abs的float64转换开销,适用于[]int、[]int32、[]int64等,性能更优。

Go语言中没有内置的数组或切片“取绝对值”函数,需手动遍历并调用 math.Abs(注意:它只接受 float64,对整数需先转换);若处理整型切片,更常用的是直接判断符号后取反,避免浮点转换开销。
整型切片转绝对值(推荐,高效无类型转换)
适用于 []int、[]int32、[]int64 等。不依赖 math 包,避免 float 转换,性能更好。
[]float64
- 对
[]float64:
import "math"
func absFloat64Slice(s []float64) {
for i := range s {
s[i] = math.Abs(s[i])
}
}
- 对
[]float32(保留原类型):
func absFloat32Slice(s []float32) {
for i := range s {
s[i] = float32(math.Abs(float64(s[i])))
}
}
返回新切片(不修改原数据)
若需保持原切片不变,可封装为返回新切片的函数:
constraints.Integer
golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!











