在Perl中,以下示例中运算符
||=
的含义是什么?$sheet -> {MaxCol} ||= $sheet -> {MinCol};
a ||= b
与a = a || b
类似,因此:
$sheet->{MaxCol} ||= $sheet->{MinCol};
类似于:
$sheet->{MaxCol} = $sheet->{MaxCol} || $sheet->{MinCol};
a ||= b;
只对a
求值一次,并且在对b
求值之前对a
求值。当a
是神奇的或不是标量时,这很重要。$sheet -> {MaxCol} ||= $sheet -> {MinCol};
具有相同的效果,就像
if (!$sheet->{MaxCol}) { $sheet->{MaxCol} = $sheet->{MinCol}; }
$sheet->{MaxCol} = $sheet->{MinCol} unless $sheet->{MaxCol};
$a += $b
几乎与 $a = $a + $b
相同。$a **= $b
(例如 $a 是 $b 的幂),+=
、-=
、*/
、/=
--- 就像它们的字面意思一样,%=
取模$a x= $b
,将字符串 $a 重复 $b 次&=, |=, ^=
,按位与、或、异或&.=
、|.=
、^.=
,与 &=
等相同,但操作数被强制解释为字符串<<=
、>>=
用于按位移位$a &&= $b
表示“如果 $a 为真,则将其设置为 $b”。||=
表示“如果 $a 为假(空字符串、值为零或未定义),则将 $a 设置为 $b。这是一个很好的方法,如果 0 或空字符串不能作为有效输入,则设置默认值。\\=
是我最喜欢的,几乎与 ||=
相同,只是即使 $a 是 0 或空字符串,它也不会将 $a 设置为 $b。