Розбіжності
Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Порівняння попередніх версій Попередня ревізія Наступна ревізія | Попередня ревізія | ||
perl:hash [04/06/2022 09:37] – Method | perl:hash [06/06/2022 14:30] (поточний) – Method | ||
---|---|---|---|
Рядок 1: | Рядок 1: | ||
- | ====== | + | ====== |
+ | У цій статті описані основні функції та правила синтаксису для роботи з хешами в Perl. | ||
- | <WRAP center round info 100%> | + | Хеш - це асоціативний масив, оскільки звернення до його значень здійснюється за допомогою скалярних ключів, |
- | Хеш - це асоціативний масив, оскільки звернення до його значень здійснюється за допомогою скалярних ключів, | + | |
В інших мовах програмування хеші називають інакше, | В інших мовах програмування хеші називають інакше, | ||
+ | |||
+ | Хеш — це невпорядкована група пар ключ-значення. Ключі є унікальними струнами. Значення є скалярними значеннями. Кожне значення може бути числом, | ||
+ | |||
+ | Хеші, як і інші змінні Perl, оголошуються за допомогою ключового слова **my**. Назві змінної передує знак відсотка ( **%** ). Це невеликий мнемонічний трюк, який допоможе вам нагадати про структуру ключ-значення. | ||
+ | |||
Хеші є одним з основних типів даних Perl. | Хеші є одним з основних типів даних Perl. | ||
- | У цій статті описані основні функції та правила синтаксису для роботи з хешами в Perl. | + | |
+ | Хеші поділяють на однорівневі | ||
+ | |||
+ | <WRAP center round tip 100%> | ||
+ | Хеш є найкращим типом даних для комунікації між складними | ||
+ | |||
+ | Також, при такому підході, вам | ||
</ | </ | ||
+ | |||
+ | |||
+ | ===== Оголошення, | ||
+ | ==== Оголошення (декларування) ==== | ||
+ | виконується без присвоєння значень, | ||
+ | <code perl>my %hash;</ | ||
+ | зазвичай це використовують для того, щоб відкрити змінну в певній області видимості, | ||
+ | |||
+ | ===== Очищення ===== | ||
+ | Якщо в процесі виконання програми, | ||
+ | <code perl> | ||
+ | або так: | ||
+ | <code perl> | ||
+ | Насправді, | ||
+ | |||
+ | ==== Ініціалізація (присвоєння) ==== | ||
+ | Ініціалізація це присвоєння пустій змінній якогось значення: | ||
+ | <code perl> | ||
+ | |||
+ | Оголошення та ініціалізацію можна об' | ||
+ | <code perl>my %hash = ();</ | ||
+ | |||
+ | Подібно до синтаксису для масивів, | ||
+ | <code perl>my %hash = (' | ||
+ | У наведеному вище коді Perl приймає перший запис у списку як ключ («monday»), | ||
+ | |||
+ | |||
+ | Оператор «**жирна кома**» виглядає як стрілка (' | ||
+ | <code perl> | ||
+ | my %hash = ( | ||
+ | monday | ||
+ | tuesday | ||
+ | wednesday => 71, | ||
+ | thursday | ||
+ | friday | ||
+ | ); | ||
+ | </ | ||
+ | |||
+ | <WRAP center round tip 100%> | ||
+ | Все вищезгадане також підходить для форми посилання ($hashref), замінивши " | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Наповнення, | ||
+ | |||
+ | <WRAP center round important 100%> | ||
+ | * ключем може бути будь-який скаляр. | ||
+ | * ключ може бути переданий в змінній. | ||
+ | * якщо ключ має в собі пробіл або назву оператора - його необхідно взяти в лапки. | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important 100%> | ||
+ | * значення може бути переданий в змінній. | ||
+ | * числове значення треба передавати без лапок. | ||
+ | * рядкове значення треба передавати в лапок. | ||
+ | * результат обрахунку - в простих жужках. | ||
+ | * результат функції - виклик функції. | ||
+ | * масив або хеш - екранувати символом " | ||
+ | </ | ||
+ | |||
+ | При зверненні до елементу хешу по ключу в контексті хешу (%hash), необхідно замінити " | ||
+ | <code perl> | ||
+ | При зверненні до елементу посилання по ключу в контексті посилання ($hashref), необхідно після назви посилання вставити ' | ||
+ | <code perl> | ||
+ | так відбувається присвоєння та зміна значень за ключем. | ||
+ | |||
+ | За такими ж правилами відбувається видалення елементів по ключу, вказавши попереду оператор **delete** та забравши присвоєння: | ||
+ | <code perl> | ||
+ | <code perl> | ||
+ | |||
+ | Також при видаленні можна зберігати значення в іншу змінну, | ||
+ | <code perl>my $a = delete $hash{key};</ | ||
+ | <code perl>my $a = delete $hashref-> | ||
+ | Таким чином в змінну $a буде збережено значення, | ||
+ | |||
+ | |||
+ | |||