Rubyの条件式の結果は、 nilとfalse以外はすべてtrue となりますよね? なので、 def hoge "a" end if hoge p "TRUE" else p "FALSE" end これの結果は "TRUE" となります。 しかし、 hogeメソッドの戻り値は、あくまで「a」であり、 「true」ではありません。 「hoge?」みたいなメソッドにする場合、 結果をbool値にしたい場合があります。 そういう場合には、こう書きます。 def hoge? !!"a" end これで、「hoge?」の戻り値はbool値になります。 ruby-1.9.2-p290 :001 > !!"a" (irb):1: warning: string literal in condition => true ruby-1.9.2-p290 :002 > !!nil => false rub