0
и 1
не представляют истинные значения в Ruby. В ruby все, что не является nil
или false
, является истинным. Если добавить к этому, что:
Операторы and и && оценивают свой первый операнд. Если ложь, выражение возвращает ложь; в противном случае выражение возвращает значение второго операнда.
Получается, что вы оцениваете true && true
и затем возвращается результат второго операнда Если бы вы написали 3 && 4
, вы бы получили 4
!