Розбіжності
Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Порівняння попередніх версій Попередня ревізія Наступна ревізія | Попередня ревізія | ||
perl:hash [04/06/2022 10:39] – [Оголошення та ініціалізація] Method | perl:hash [06/06/2022 14:30] (поточний) – Method | ||
---|---|---|---|
Рядок 7: | Рядок 7: | ||
Хеш — це невпорядкована група пар ключ-значення. Ключі є унікальними струнами. Значення є скалярними значеннями. Кожне значення може бути числом, | Хеш — це невпорядкована група пар ключ-значення. Ключі є унікальними струнами. Значення є скалярними значеннями. Кожне значення може бути числом, | ||
- | Хеші, як і інші змінні Perl, оголошуються за допомогою ключового слова | + | Хеші, як і інші змінні Perl, оголошуються за допомогою ключового слова |
Хеші є одним з основних типів даних Perl. | Хеші є одним з основних типів даних Perl. | ||
+ | |||
+ | Хеші поділяють на однорівневі та багаторівневі. Також можуть зберігатись в своїй формі (%hash) або в формі посилання ($hashref). | ||
+ | |||
+ | <WRAP center round tip 100%> | ||
+ | Хеш є найкращим типом даних для комунікації між складними функціями, | ||
+ | |||
+ | Також, при такому підході, | ||
+ | </ | ||
+ | |||
===== Оголошення, | ===== Оголошення, | ||
==== Оголошення (декларування) ==== | ==== Оголошення (декларування) ==== | ||
- | виконується без присвоєння значень, | + | виконується без присвоєння значень, |
<code perl>my %hash;</ | <code perl>my %hash;</ | ||
+ | зазвичай це використовують для того, щоб відкрити змінну в певній області видимості, | ||
===== Очищення ===== | ===== Очищення ===== | ||
Рядок 21: | Рядок 31: | ||
або так: | або так: | ||
<code perl> | <code perl> | ||
+ | Насправді, | ||
==== Ініціалізація (присвоєння) ==== | ==== Ініціалізація (присвоєння) ==== | ||
Рядок 34: | Рядок 45: | ||
- | Оператор «жирна кома» виглядає як стрілка (' | + | Оператор «**жирна кома**» виглядає як стрілка ('**=>**') і дозволяє оголошувати пари значень ключів замість коми. Це робить код більш чистим і читабельним. Крім того, під час використання жирної коми не потрібно брати рядки в лапки для ключів. Використовуючи жирну кому, те саме оголошення %hash виглядатиме так: |
<code perl> | <code perl> | ||
my %hash = ( | my %hash = ( | ||
Рядок 43: | Рядок 54: | ||
friday | 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 буде збережено значення, | ||
+ | |||
- | <code perl>my %hash;</ | ||
- | Оголошує порожній хеш: | ||
- | <code perl>my %hash;</ | ||
- | Оголошує порожній хеш: | ||
- | <code perl>my %hash;</ | ||
- | Оголошує порожній хеш: | ||
- | <code perl>my %hash;</ | ||
- | Оголошує порожній хеш: | ||
- | <code perl>my %hash;</ | ||