Технологии

как узнать что в хеш - вопрос №2175877

как узнать что в хеш.хочу пройти онлайн игру

октябрь 24, 2016 г.

  • Всего ответов: 1

  • Вилия - аватарка

    Вилия

    14-й в

    Хэши могут инициализироваться с помощью списков, содержащих пары «ключ/ значение»:

    %аgе = ( «Nat», 24, «Jules», 25, «Josh», 17 );

    Такая запись эквивалентна следующей:

    $age{«Nat»} = 24;
    $age{«Jules»} = 25;
    $age{«Josh»} = 17;
    Для упрощения инициализации хэшей был создан оператор, оператор =>. В основном он представляет собой более наглядную замену для занятой. Например, возможна следующая инициализация хэша:
    %food_color = (
    «Apple» => «red», «Banana» => «yellow», «Lemon» => «yellow», «Carrot» => «orange» );
    Однословные ключи хэшей также автоматически интерпретируются как строки, поэтому вместо $hash{«somekey»} можно написать просто $hash{somekey}. Приведенная выше инициализация %food_color записывается в следующем виде:

    %food_color = (
    Apple => «red», Banana => «yellow», Lemon => «yellow», Carrot => «orange» Одно из важных свойств хэшей заключается в том, что их элементы хранятся в особой последовательности, обеспечивающей выборку. Следовательно, независимо от порядка занесения данных в хэш, порядок их хранения будет непредсказуемым.

    Занесение элемента в хэш
    Присвоите нужное значение в записи вида:
    $ХЭШ{$КЛЮЧ} = $ЗНАЧЕНИЕ;
    Процесс занесения данных в хэш весьма тривиален. В языках, где хэш не относится к встроенным типам данных, приходится беспокоиться о переполнении, изменении размеров и коллизиях в хэш-таблицах. В Perl обычное присваивание решает сразу все проблемы. Если ключ уже занят, то есть содержит предыдущее значение, память автоматически освобождается (по аналогии с присваиванием скалярной переменной).
    # Хэш %food_color определяется во введении
    $food_color{Raspberry} = «pink»:
    print «Known foods:\n»;
    foreach $food (keys %food_color) { print "$food\n";
    } Known foods:
    Banana
    Apple
    Raspberry
    Carrot
    Lemon

    Если в качестве ключа хэша используется неопределенная величина undef, она преобразуется в пустую строку "" (что сопровождается предупреждением при запуске с параметром -w). Вероятно, неопределенный ключ undef — это не то, что вы хотели. С другой стороны, undef является вполне допустимым значением в хэ-шах. Однако при выборке значения для ключа, отсутствующего в хэше, вы также получите undef. Это означает, что для проверки существования ключа $key в хэше %hash простая логическая проверка if ($hash{$key}) не подходит. Присутствие ключа в хэше проверяется записью вида exists($hash{$key}); определенность ассоциированного значения — defined($hash{$key}), а его истинность — if ($hash{$key} /. Во внутренних алгоритмах хэширования Perl перестановки строки попадают на одну и ту же позицию. Если в ключах хэша многократно встречаются перестановки одной строки (скажем, «spare» и «craps»), быстродействие хэша заметно падает. На практике это происходит редко

    ноябрь 22, 2016 г.

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