Пятница, 24.11.2017, 10:24
Приветствую Вас Гость | RSS
Главная | Лекции | Регистрация | Вход
Меню сайта
Форма входа
Логин:
Пароль:
Категории раздела
Лекция [24]
Мини-чат
100
Поиск
Наш опрос
Оцените мой сайт
Всего ответов: 2
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Программирование Perl
    Главная » Статьи » Лекция » Лекция

    Лекция 6.3: Хэши

    Хэши и контекст

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

     
    %hash = $scalar; # то же, что %hash = ($scalar)
    # defined($hash{$scalar}) будет ложно: значения не было
    # exists($hash{$scalar}) будет истинно: ключ есть
     

    В этой лекции завершается изучение основных типов данных в языке Perl: скаляров, списков и хэшей. В таблице 6.1 для сравнения приведены контексты и форматы обращения к скалярным переменным, элементам массивов и хэшей и их срезам.

     
    Таблица 6.1. Форматы записи переменных
    Конструкция Хранимое значение Описание Контекст (в левой частиприсваивания)
    @variable список весь массив @variable списочный
    %variable хэш весь хэш %variable списочный
    $variable скаляр просто скалярная переменная скалярный
    $variable[$index] скаляр элемент массива @variable, заданный индексом $index скалярный
    @variable[@list] список срез массива @variable, заданный списком индексов @list списочный
    @variable[$index] список (из одного элемента) срез массива @variable, заданный списком из одного индекса $index списочный
    $variable{$key} скаляр элемент хэша %variable скалярный
    @variable{@list} список (значений) срез хэша %variable, заданный списком ключей @list списочный
    @variable{$key} список (из одного значения) срез хэша %variable, заданный списком из одного ключа $key списочный
     

    Дополнительные сведения о хэшах можно узнать из справочной документации, обратившись к разделу о типах данных:

     
    perldoc perldata
     

    Хэши - это, наверное, самая популярная структура данных при программировании на Perl. Без них не обходится ни одна серьезнаяпрограмма, ведь их применение делает многие алгоритмы проще, а программу - понятнее. Материал этой лекции показывает, насколько удобно и просто пользоваться хэшами. Особенный интерес представляет возможность хранения в ассоциативныхмассивах ссылок на другие структуры данных: массивы, хэши, объекты, подпрограммы. Это позволяет создавать сложные динамические структуры данных, о чем будет сказано в "лекции 11" , посвященной ссылкам.

    Категория: Лекция | Добавил: mazay (13.05.2014)
    Просмотров: 48 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Создать бесплатный сайт с uCozCopyright MyCorp © 2017