Golang没有int绝对值函数怎么办 Golang自定义整数绝对值写法

admin 百科 13
Go标准库无int版abs(),math.Abs仅支持float64;最简实现是条件判断:func Abs(x int) int { if x

Golang没有int绝对值函数怎么办 Golang自定义整数绝对值写法-第1张图片-佛山资讯网

Go语言标准库中确实没有直接针对int类型的abs()函数(math.Abs()只接受float64),但实现整数绝对值非常简单,无需依赖第三方包。

用条件判断最直观

int做符号判断是最清晰、零依赖的方式:

func Abs(x int) int {
    if x < 0 {
        return -x
    }
    return x
}

登录后复制

这个写法兼容所有int大小(int在不同平台可能是32位或64位),也适用于int8int16等有符号整型(只需改函数签名)。

用三元表达式?Go不支持,别硬套

Go没有a ? b : c语法,所以不能写成x 。强行模拟(比如用<code>map[bool]int)反而低效又难读,不推荐。

立即学习“go语言免费学习笔记(深入)”;

注意 math.Abs 的坑

如果硬要用math.Abs,必须先转float64再转回int

标签: go golang go语言 工具 标准库 隐式转换

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~