Issue #7978 has been updated by alexeymuranov (Alexey Muranov).


phluid61 (Matthew Kerwin) wrote:
> 
> Similarly, why should true.to_i return 1, and not -1 (as in Visual Basic) or 43 or 0 (which is also a truthy value)?

If some event is going to happen with probability 1, it is almost true that it will happen.  If it is going to happen with probability 0, it is almost false that it will happen.
----------------------------------------
Feature #7978: boolean to_i
https://bugs.ruby-lang.org/issues/7978#change-37230

Author: alexeymuranov (Alexey Muranov)
Status: Rejected
Priority: Normal
Assignee: matz (Yukihiro Matsumoto)
Category: core
Target version: next minor


=begin
The current behavior is the following:

  > nil.to_i
   => 0 
  > false.to_i
  NoMethodError: undefined method `to_i' for false:FalseClass

  > true.to_i
  NoMethodError: undefined method `to_i' for true:TrueClass

This does not look very consistent to me.  I think it could be useful to define (({false.to_i})) as 0 and (({true.to_i})) as 1.  I think those are fairly common numeric values for False and True.  These values as strings "0" and "1" are also commonly used in HTML forms to represent boolean values.
=end



-- 
http://bugs.ruby-lang.org/