Существует ли Perl, эквивалентный пустому оператору объединения (??) в C#?

Если бы <loner> элемент в Вашем демонстрационном XML не имел xmlns объявление пространства имен по умолчанию по нему, то это было бы в whatever:name-space-1.0 пространство имен вместо того, чтобы не находиться ни в каком пространстве имен. Если это - то, что Вы хотите, необходимо создать элемент в том пространстве имен:

xml.CreateElement("loner", "whatever:name-space-1.0")

, Если Вы хотите <loner> элемент не быть ни в каком пространстве имен, тогда XML, это было произведено, точно, в чем Вы нуждаетесь, и Вы не должны волноваться об эти xmlns атрибут, это было добавлено автоматически для Вас.

17
задан Cecil Has a Name 12 December 2009 в 02:06
поделиться

3 ответа

Начиная с версии 5.10 существует оператор // , который семантически эквивалентен, если вы считаете, что концепция undef в Perl эквивалентна концепция null в C #.

Пример A:

my $a = undef;
my $b = $a // 5;  # $b = 5;

Пример B:

my $a = 0;
my $b = $a // 5;  # $b = 0;
33
ответ дан 30 November 2019 в 11:37
поделиться

Фактически, оператор короткого замыкания ИЛИ также будет работать при вычислении undef:

my $b = undef || 5;  # $b = 5;

Однако он завершится ошибкой при вычислении 0, но истинно:

my $b = 0 || 5;  # $b = 5;
2
ответ дан 30 November 2019 в 11:37
поделиться

Я не знаю об этом.

На самом деле Perl не является большим пользователем концепции null. У него есть проверка, не определена ли переменная. Нет специального оператора вроде ?? хотя, но вы можете использовать условный оператор?: с тестом undef и подойти довольно близко.

И я также ничего не вижу в списке операторов perl .

-4
ответ дан 30 November 2019 в 11:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: