Что оператор // делает в Perl? - PullRequest
0 голосов
/ 13 марта 2019

Я придумал код следующего вида: $ avr = ($ values ​​[0] // $ values ​​[1]) eq '-'?0: ($ values ​​[0] // $ values ​​[1]);

Значит ли здесь «//» что-то?

1 Ответ

3 голосов
/ 13 марта 2019
EXPR1 // EXPR2

эквивалентно

defined(EXPR1) ? EXPR1 : EXPR2

, за исключением того, что EXPR1 оценивается только один раз.


my $var = $values[1] // $values[2];
$var = 0 if $var eq '-';

, вероятно, яснее, чем

my $var = ($values[0] // $values[1]) eq '-' ? 0 : ($values[0] // $values[1]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...