perl:hash

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

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