«Большая стрелка»

При присваивании списка хешу иногда бывает неочевидно, какие элементы списка являются ключами, а какие – значениями. Например, если мы захотим узнать, чем является 2.5 в следующей команде присваивания (которая уже встречалась нам ранее), нам придется вручную отсчитывать элементы списка – «ключ, значение, ключ, значение»:

%some_hash = ("foo", 35, "bar", 12.4, 2.5, "hello",
"wilma", 1.72e30, "betty", "bye\n");


Разве не удобно было бы иметь механизм определения пар «ключ-значение» в таких списках, чтобы мы могли с первого взгляда определить, чем является тот или иной элемент? Ларри тоже так думал, поэтому он изобрел «большую стрелку» =>. С точки зрения Perl «большая стрелка» является всего лишь альтернативным способом «изображения» запятой, поэтому иногда ее называют «жирной запятой». Иначе говоря, в грамматике Perl во всех ситуациях, где может использоваться запятая (,), ее можно заменить «большой стрелкой»; для Perl эти обозначения эквивалентны. А следовательно, определение хеша с именами и фамилиями может выглядеть так:

my %last_name = ( # Хеш может быть лексической переменной
"fred" => "flintstone",
"dino" => undef,
"barney" => "rubble",
"betty" => "rubble",
);


Этот синтаксис позволяет легко (или, по крайней мере, гораздо легче) увидеть, какая фамилия соответствует тому или иному имени, даже если в одной строке будут размещаться несколько пар. Обратите также внимание на завершающую запятую в конце списка. Как было показано ранее, она безвредна, но удобна. Если в список будут добавляться новые элементы, нам достаточно проследить за тем, чтобы каждая строка содержала пару «ключ-значение» и завершалась запятой. Perl увидит, что каждая пара отделяется от следующей пары запятой и что еще одна (безвредная) запятая завершает список.
Теги:
хеш
Добавлено: 20 Июля 2018 08:42:43 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...