Как искать в массиве Perl строку, которая меняет каждую итерацию

Короче. Нет.

Необязательные параметры необходимы для компиляции временных констант или типов значений.

Из Именованные и необязательные аргументы (Руководство по программированию на C #) в MSDN:

Каждый необязательный параметр имеет значение по умолчанию, как часть его определения. Если для этого параметра не отправляется аргумент, используется значение по умолчанию. Значение по умолчанию должно быть одним из следующих типов выражений:

  • константное выражение;
  • выражение вида new ValType(), где ValType - значение type, например enum или struct;
  • выражение вида default(ValType), где ValType - тип значения.

То, что вы хотите достичь, может быть достигнуто путем перегрузки:

public string Download()
{
   return Download(Encoding.UTF8);
}

public string Download(Encoding contentEncoding)
{
   defaultEncoding = contentEncoding ?? Encoding.UTF8;
   // codes...
}

Обратите внимание, что это не совсем то же самое, что и дополнительные параметры, поскольку значение по умолчанию становится жестко закодированным в вызывающем абоненте с дополнительным параметров (поэтому существуют ограничения для них).

1
задан William 25 February 2019 в 03:19
поделиться

1 ответ

my %score_lookup;
{
   my $found_header = 0;
   my @col_ids;
   while (<>) {
      next if /^#/;

      if ($found_header) {
         my ($row_id, @fields) = split;
         for my $i (0..$#fields) {
            my $col_id = $col_ids[$i];
            my $score = $fields[$i];
            $score_lookup{ $row_id . $col_id } = $score;
         }
      } else {
         $found_header = 1;
         @col_ids = split;
      }
   }
}

my $score = $score_lookup{ "A" . "R" };   # -2
0
ответ дан ikegami 25 February 2019 в 03:19
поделиться
Другие вопросы по тегам:

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