6

Perl では||=、次の例の演算子の意味は何ですか?

$sheet -> {MaxCol} ||= $sheet -> {MinCol};
4

3 に答える 3

7

a ||= bに似ているa = a || bので、次のようになります。

$sheet->{MaxCol} ||= $sheet->{MinCol};

と類似しています:

$sheet->{MaxCol} = $sheet->{MaxCol} || $sheet->{MinCol};

池上のコメントによると、違いは一度a ||= b;しか評価されず、前に評価されることです。これは、魔法の場合、またはスカラーでない場合に重要です。aaba

于 2013-06-02T14:37:40.067 に答える
5
$sheet -> {MaxCol} ||= $sheet -> {MinCol};

と同じ効果があります

if (!$sheet->{MaxCol}) { $sheet->{MaxCol} = $sheet->{MinCol}; }

また

$sheet->{MaxCol} = $sheet->{MinCol} unless $sheet->{MaxCol};
于 2013-06-02T14:43:14.497 に答える