用于`nil`.to_i#=>的用例0`,`“”。to_i#=> 0``nil`.to_f#=> 0.0`,`“”.to_f#=> 0.0`

时间:2015-08-21 20:16:39

标签: ruby null integer

我觉得如果"".to_i"".to_fnil或引发异常会很自然,而且定义nil.to_i或{对我来说没有多大意义{1}}。

nil.to_fnil.to_i #=> 0"".to_i #=> 0nil.to_f #=> 0.0有哪些用例?

1 个答案:

答案 0 :(得分:2)

两种情况:

  1. 起始值。

    @count = @count.to_i.next
    

    而不是

    @count = 0
    @count += 1
    
  2. 方便转型。

    通常会返回带有一些值的集合,nil。通常,您要么删除它们,要么将它们计为默认值。

    假设您有一种方法可以计算每个SO用户评分最高的帖子的平均分数。如果用户根本没有帖子,则User#highest_rated将返回nil

    users.map{ |user| user.highest_rated.to_i }.reduce(:+) / users.size
    

    这不是一个完美的例子,但它始终发生在日常变换中。

  3. 为什么不提出异常或返回nil

    Ruby超出了可用性。必须在任何地方检查nil值都会显得有些笨拙。事实上,在很多情况下,当我使用这些操作时,确实要确保将nil值转换为默认值。

    此外,期望to_i(例如)将返回一个整数。返回nil将是一个轻微的重要时刻。