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.0
或 BigDecimal(2)
。如果您稍后有代码关心 value
的 class,这可能会有用。
我在我们的代码库中偶然发现了这一行 Ruby:
value = value.to_i if value == value.to_i
我不明白它应该做什么。
如果守卫条件为假,则什么都不做。 如果是真的,那就是空话。
什么给了?
在大多数情况下这是一个 noop。但是,如果 value
不响应 to_i
,则会抛出 NoMethodError
- 我非常怀疑这是故意的,但没有更多的上下文很难更精确.
这行代码会将任何整数转换为 Integer
class,因此它将用 2
替换 2.0
或 BigDecimal(2)
。如果您稍后有代码关心 value
的 class,这可能会有用。