From: Richard Lionheart Date: 2004-05-19T06:20:08+09:00 Subject: Zero is true ... whoda thunk? Hi, I can't find anything in Programming Ruby to suggest why zero is treated as true, as happens in lines and 12 in the following toy program. Is it perhaps because Ruby has no boolean type, so zero gets converted to a string, or something? Aside from an explantion, can you cite a relevant page in the Thomas&Hunt book? Thanks in advance, Richard def count_exes(l) n = l.count "x" end DATA.each_line do |line| print line.chomp if n = count_exes(line) then print "\t(#{n} exes in line) [Pgm line 7]" end if (n = count_exes(line)) > 0 then print "\t(additional note for ex-lines)" end puts end puts "0 is " + (0?"true":"false") + " [Pgm line 12]" __END__ Two 'xx's Three 'xxx's No ekses --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.687 / Virus Database: 448 - Release Date: 5/16/2004