Translate

2008年7月20日日曜日

|| && 演算子のメモ

初期値をセットするのによく使うor演算子。
sub hoge{
my $arg = shift || "hogehoge";
print $arg, "\n";
}

上の場合は、引数があればその値を表示し
なければ"hogehoge"を表示することになる。
じゃ、下の場合は何を表示する?
use strict;
use warnings;

print 1 || 2, ",\n";
print 0 || 3, ",\n";
print "" || 4, ",\n";
print "" || "", ",\n";
print "" || 0, ",\n\n";


print 5 && 6, ",\n";
print 7 && 0, ",\n";
print 0 && 8, ",\n";
print 9 && "" && 0, ",\n";

最後に評価した物が返されるってことさえ頭にあればとくに問題ないですよね。
or演算子が最後に評価するものといえば、
一つでも真がある時、一番最初の真の値
真がない時、一番最後の偽の値

and演算子が最後に評価するものといえば
全て真の時、一番最後の真の値
偽の時、一番最初の偽の値


0 件のコメント: