📜  红宝石 |有理 abs()函数(1)

📅  最后修改于: 2023-12-03 15:27:31.533000             🧑  作者: Mango

程序员必学之红宝石 | 有理 abs() 函数

在 Ruby 中,abs() 函数是一个非常常用的函数,用于返回数值的绝对值。而对于大部分语言,绝对值函数通常都已经原生支持。但是,Ruby 中 abs() 函数还有一个非常棒的特征,那就是能够处理有理数的绝对值。

什么是有理数?

有理数是指可以表示成 $p/q$(其中 p 和 q 都是整数)的数。例如 1/3、5/2、7/8 等等都是有理数。有理数可以有一个整数部分,也可以没有。

有理数在 Ruby 中可以通过 Rational 类型来表示,它的构造函数如下:

Rational(分子, 分母)

例如,要表示有理数 3/4,可以这样写:

r = Rational(3, 4)
puts r # 输出 3/4
有理数的 abs() 函数

在 Ruby 中,abs() 函数不仅可以用于普通的数值,还可以用于有理数。对于有理数而言,abs() 函数的返回值是一个新的 Rational 类型的对象。例如:

# 定义有理数 r1 和 r2
r1 = Rational(-3, 4)
r2 = Rational(5, -2)

# 输出它们的绝对值
puts r1.abs # 输出 3/4
puts r2.abs # 输出 5/2

需要注意的是,如果 abs() 函数的参数是一个整数或浮点数,那么它会返回这个数的绝对值,而不会返回一个 Rational 类型的对象。

x = -5
puts x.abs # 输出 5
总结

有理数在 Ruby 中可以通过 Rational 类型来表示,它的构造函数是 Rational(分子, 分母)。而 abs() 函数不仅可以用于普通的数值,还可以用于有理数,并返回一个新的 Rational 类型的对象。在开发过程中,需要注意区分有理数和其他类型的数值的不同。