В Go, почему нет функции, которая напрямую вычисляет абсолютное значение для целочисленных типов данных. В настоящее время все целочисленные значения должны быть приведены к типу float64, а затем они должны использоваться в качестве параметра в функции math.Abs(). И он возвращает только тип данных float64, который снова должен быть приведен к целочисленному типу данных.
Например, этот код выдает ошибку, поскольку Go является статически типизированным языком, поэтому не допускает другой тип данных.
./prog.go:12:39: нельзя использовать x (тип int64) как тип float64 в аргументе для math.Abs
import (
"fmt"
"math"
)
func main() {
fmt.Println("Hello, playground")
var x int64 = -10
fmt.Println("Abolute value ",math.Abs(x))
}
math
, а затем обратно в целые числа почти никогда не бывает правильным. Единственная причина, по которой большинство простых функцийmath
существует дляfloat64
, заключается в том, что числа с плавающей запятой часто имеют ряд угловых случаев (например, включающих NaN и бесконечности), которые раздражают, чтобы быть правильными; целые числа не имеют этих проблем. - person Dave C   schedule 26.08.2019