DouKaku?
Add tags
Add tags to the following comment
lunlumo
#6436
(
2008/06/04 10:45 GMT
)
Rating
0/0=0.00
> my $var ||= 'foo';
>というコードは$varという変数がnilのときだけ'foo'を代入するもので
であれば余り問題は無いのですが,このコードは以下のコードと同じ意味になります。
my $var = $var || 'foo'; #||は短絡演算子
問題中にある様に変数の宣言と一緒にやる場合には然程問題になりませんが,perlでは0は偽として評価されるので,値が設定されていない場合に初期値を設定する意図で使用するケースで,以下の様に問題が出る場合があるのです。
my $var;
[..snip..]
$var = 0;
[..snip..]
$var ||= 1; #0が設定されている場合は0のままとするつもり
Tags
: No tags
Rating
0/0=0.00
-
0
+
[
reply
]
Add tags
Tags:
The input will be splited to tags with space.
iframe required
Index
Languages
Challenges
Topics
Comments
Good comments
Tags
Feed
Latest challenges
Latest topics
Latest comments
Other
Q&A
Feedback
Link
Chatroom in Lingr
Cybozu Labs.
Django
Pathtraq
loading...
このサイトの内容は、
クリエイティブ・コモンズ・ライセンス
の下でライセンスされています。
[詳細]
lunlumo #6436() Rating0/0=0.00
>というコードは$varという変数がnilのときだけ'foo'を代入するもので
であれば余り問題は無いのですが,このコードは以下のコードと同じ意味になります。
my $var = $var || 'foo'; #||は短絡演算子
問題中にある様に変数の宣言と一緒にやる場合には然程問題になりませんが,perlでは0は偽として評価されるので,値が設定されていない場合に初期値を設定する意図で使用するケースで,以下の様に問題が出る場合があるのです。
my $var;
[..snip..]
$var = 0;
[..snip..]
$var ||= 1; #0が設定されている場合は0のままとするつもり