ruby 这一行是做什么用的?

What does this line of ruby do?

我在我们的代码库中偶然发现了这一行 Ruby:

value = value.to_i if value == value.to_i

我不明白它应该做什么。

如果守卫条件为假,则什么都不做。 如果是真的,那就是空话。

什么给了?

在大多数情况下这是一个 noop。但是,如果 value 不响应 to_i,则会抛出 NoMethodError - 我非常怀疑这是故意的,但没有更多的上下文很难更精确.

这行代码会将任何整数转换为 Integer class,因此它将用 2 替换 2.0BigDecimal(2)。如果您稍后有代码关心 value 的 class,这可能会有用。