Автовівіфікація

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Автовівіфікація (англ. autovivification) — автоматичне створення нових масивів та хешів, щоразу коли звертаються до неописаного значення всередині них. З'явилась в мові Perl, і дозволяє програмісту звертатись до структури даних та довільних її піделементів, без явного створення структури даних перед звертанням.[1]

Емуляція в інших мовах програмування[ред. | ред. код]

Python[ред. | ред. код]

Модуль collections містить клас defaultdict[2] який можна використати для реалізації автовівіфіковних словників за допомогою простої рекурсивної функції.[3]

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.'

Див. також[ред. | ред. код]

Зноски[ред. | ред. код]

  1. Schwartz, Randal L.; Phoenix, Tom (2003). Learning Perl Objects. O'Reilly Media, Inc. с. 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...
  2. collections - High-performance container datatypes - Python v2 documentation. Архів оригіналу за 14 серпня 2014. Процитовано 14 серпня 2013.
  3. What is the best way to implement nested dictionaries in Python?. Процитовано 14 серпня 2013.

Посилання[ред. | ред. код]