From: Csaba Henk Date: 2005-02-21T08:44:41+09:00 Subject: Re: destructive! operations On 2005-02-20, Navindra Umanee wrote: > Often think it would be nice if "" and 0 were treated like nil. Such > functions could then return "". Heck, NilClass.to_s and NilClass.to_i > already return "" and 0 respectively. Now, only false and nil drop you to the "else" branch of a conditional. Certainly, there are cases when it' not the best behaviour, and you have to write extra code to get the proper control flow when you test against 0 and/or "". If it were the other way around, and "", 0 (and [], {}) would lead to the "else" branch as well, again, there would occur situations when it's not the best behaviour and you'd need to write extra code to get things right. Now the question is: which of the two behaviours is the right thing more often? My experience is that the present way is the more optimal. It's more cleaner as well. There is no intrinsic difference between "" and "a", 0 and 1, [] and [1]. It would be artificial to force an instance-sensitive policy when testing agains Strings, Integers and Arrays. Those guys who make a difference when using them in a conditional are clearly separated into their respective cages (I mean, classes). That's nice... Csaba