Автовівіфікація (англ. autovivification) — автоматичне створення нових масивів та хешів, щоразу коли звертаються до неописаного значення всередині них. З'явилась в мові Perl, і дозволяє програмісту звертатись до структури даних та довільних її піделементів, без явного створення структури даних перед звертанням.
Емуляція в інших мовах програмування
Python
Модуль collections
містить клас defaultdict
який можна використати для реалізації автовівіфіковних словників за допомогою простої рекурсивної функції.
from collections import defaultdict Tree = lambda: defaultdict(Tree) common_name = Tree() common_name['Mammalia']['Primates']['Homo']['H. sapiens'] = 'human being' # Відомі цитати за п’єсою, актом та сценою: quotes = Tree() quotes['Hamlet'][1][3][0] = 'This above all: to thine own self be true.'
Див. також
Зноски
- Schwartz, Randal L.; Phoenix, Tom (2003). Learning Perl Objects. O'Reilly Media, Inc. с. 42. ISBN .
This process is called autovivification. Any nonexisting variable, or a variable containing undef, which is dereferenced while looking for a variable location (technically called an lvalue context), is automatically stuffed with the appropriate reference to an empty item...
- . Архів оригіналу за 14 серпня 2014. Процитовано 14 серпня 2013.
- What is the best way to implement nested dictionaries in Python?. Процитовано 14 серпня 2013.
Посилання
- perl561delta: File and directory handles can be autovivified [ 18 листопада 2010 у Wayback Machine.]
- Autovivification in Perl: An In-Depth Tutorial [ 26 грудня 2013 у Wayback Machine.]
- A Use of the Y Combinator in Ruby [ 27 квітня 2012 у Wayback Machine.] — Implements autovivification in Ruby with the Y Combinator.
- Hash#autonew in the Ruby gem «facets» adds autovivification on hash reads [ 14 серпня 2014 у Wayback Machine.]
- The Ruby gem «xkeys» facilitates nested structure traversal and autovivifies on array or hash writes [ 14 серпня 2014 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Avtovivifikaciya angl autovivification avtomatichne stvorennya novih masiviv ta heshiv shorazu koli zvertayutsya do neopisanogo znachennya vseredini nih Z yavilas v movi Perl i dozvolyaye programistu zvertatis do strukturi danih ta dovilnih yiyi pidelementiv bez yavnogo stvorennya strukturi danih pered zvertannyam Emulyaciya v inshih movah programuvannyaPython Modul collections mistit klas defaultdict yakij mozhna vikoristati dlya realizaciyi avtovivifikovnih slovnikiv za dopomogoyu prostoyi rekursivnoyi funkciyi from collections import defaultdict Tree lambda defaultdict Tree common name Tree common name Mammalia Primates Homo H sapiens human being Vidomi citati za p yesoyu aktom ta scenoyu quotes Tree quotes Hamlet 1 3 0 This above all to thine own self be true Div takozhStrategiyi obchislennya Zminna programuvannya ZnoskiSchwartz Randal L Phoenix Tom 2003 Learning Perl Objects O Reilly Media Inc s 42 ISBN 9780596004781 This process is called autovivification Any nonexisting variable or a variable containing undef which is dereferenced while looking for a variable location technically called an lvalue context is automatically stuffed with the appropriate reference to an empty item Arhiv originalu za 14 serpnya 2014 Procitovano 14 serpnya 2013 What is the best way to implement nested dictionaries in Python Procitovano 14 serpnya 2013 Posilannyaperl561delta File and directory handles can be autovivified 18 listopada 2010 u Wayback Machine Autovivification in Perl An In Depth Tutorial 26 grudnya 2013 u Wayback Machine A Use of the Y Combinator in Ruby 27 kvitnya 2012 u Wayback Machine Implements autovivification in Ruby with the Y Combinator Hash autonew in the Ruby gem facets adds autovivification on hash reads 14 serpnya 2014 u Wayback Machine The Ruby gem xkeys facilitates nested structure traversal and autovivifies on array or hash writes 14 serpnya 2014 u Wayback Machine