Comment detail
変数の初期値 (Nested Flatten)This comment is reply for 5952 あにす: すみません。Perlが読めません。 ”...(変数の初期値). Go to thread root.
つまり定数を宣言すればよいということでしょうか…。 const string hoge = "piyo"; これだと宣言時に値が確定してないときには具合が悪いですね。 こんなのはどうでしょう? わかりにくいですね…。
1 2 | string hoge;
hoge = hoge == "" ? "piyo" : hoge;
|
すみません。これだとコンパイル出来ませんね。
1 2 | string hoge = "";
hoge = hoge == "" ? "piyo" : hoge;
|
> my $var ||= 'foo';
>というコードは$varという変数がnilのときだけ'foo'を代入するもので
であれば余り問題は無いのですが,このコードは以下のコードと同じ意味になります。
my $var = $var || 'foo'; #||は短絡演算子
問題中にある様に変数の宣言と一緒にやる場合には然程問題になりませんが,perlでは0は偽として評価されるので,値が設定されていない場合に初期値を設定する意図で使用するケースで,以下の様に問題が出る場合があるのです。
my $var;
[..snip..]
$var = 0;
[..snip..]
$var ||= 1; #0が設定されている場合は0のままとするつもり
>というコードは$varという変数がnilのときだけ'foo'を代入するもので
であれば余り問題は無いのですが,このコードは以下のコードと同じ意味になります。
my $var = $var || 'foo'; #||は短絡演算子
問題中にある様に変数の宣言と一緒にやる場合には然程問題になりませんが,perlでは0は偽として評価されるので,値が設定されていない場合に初期値を設定する意図で使用するケースで,以下の様に問題が出る場合があるのです。
my $var;
[..snip..]
$var = 0;
[..snip..]
$var ||= 1; #0が設定されている場合は0のままとするつもり





匿名
#5958()
Rating0/0=0.00