将正整数转换为负整数

jor*_*anv 2 ruby

我是编程新手,很想知道为什么以下返回负整数:

-num.abs
Run Code Online (Sandbox Code Playgroud)

我的理解是 abs 将值作为正数返回,但这会将任何正数返回为负数?

Ser*_*sev 5

为什么以下返回负整数: -num.abs

因为是-(num.abs),不是(-num).abs。首先,您取abs,然后您否定该值,从而产生负数。