Rubyの真偽値・nilとfalseだけが偽

はてなブックマークに追加はてなブックマーク Yahoo!ブックマークに登録 ニフティクリップに追加 Livedoor クリップに追加 BuzzurlにブックマークBuzzurlにブックマーク Twitterに投稿  

PHPやPerlに慣れていると、数値の0(ゼロ)や空文字列が「偽(false)」と評価されるとして、プログラムを書きますね。
しかし、Rubyでは、数値の0や空文字列が「真」(true)と評価されます。
PHPとRubyで比べてみます。

PHPの場合

$num = 0;
if ($num) {
    echo "0 is true";
} else {
    echo "0 is false";
}
 
echo "<br>";
 
$str = "";
if ($str) {
    echo "空文字列はture";
} else {
    echo "空文字列はfalse";
}

実行結果。

0 is false
空文字列はfalse


Rubyの場合

num = 0
if num
    puts "0 is true"
else
    puts "0 is false"
end
 
str = ''
if str
    puts "空文字列はture"
else
    puts "空文字列はfalse"
end

実行結果。

0 is true
空文字列はture

Rubyの場合、返された値が「nil」と「false」の場合にだけ、「偽」と評価されます。
裏を返すと、nilとfalse以外は、すべて真となります。


日時: 2008年06月27日 17:58
コメントを投稿






トラックバック

■この記事のトラックバックURL:
http://www.mapee.jp/mpe334/mt-tb.cgi/381

この記事にトラックバックされる方は、参照先が分かるようにするために、「Rubyの真偽値・nilとfalseだけが偽」へのリンクをお願いいたします。
以下のHTMLタグをトラックバック送信元ページ内に挿入して下さい。



※この記事へのリンクがない、また関連のないページからのトラックバックは反映されませんので、ご了承下さい。






あわせて読みたいブログパーツ
フィードメーター - Ruby勉強ルーム