10.2.3. Ограниченное «глубокое копирование» в ходе маршалинга
10.2.3. Ограниченное «глубокое копирование» в ходе маршалинга
В Ruby нет операции «глубокого копирования». Методы dup и clone не всегда работают, как ожидается. Объект может содержать ссылки на вложенные объекты, а это превращает операцию копирования в игру «собери палочки».
Ниже предлагается способ реализовать глубокое копирование с некоторыми ограничениями, обусловленными тем, что наш подход основан на использовании класса Marshal со всеми присущими ему недостатками:
def deep_copy(obj)
Marshal.load(Marshal.dump(obj))
end
a = deep_copy(b)
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
13.5.1. Копирование
13.5.1. Копирование Самый простой вариант создания резервной копии — использование команды cp (копирование файлов). Только в этом случае необходимо обязательно сохранять права доступа к файлу. Вот как может выглядеть команда, дублирующая директорию /home на примонтированном
Требования к информации, которая будет распространяться в ходе отражения информационного нападения
Требования к информации, которая будет распространяться в ходе отражения информационного нападения Из собственного опыта и наблюдения за успехами и просчетами чужих информационных войн в Интернете мы сделали вывод, что информация, которая будет подниматься в
Часть V Более глубокое знакомство
Часть V Более глубокое знакомство Глава 30 Автозапуск приложений Собственно, я закончил описание основ работы в Ubuntu. Конечно, я старался выбрать только самые востребованные темы, оставив специфические знания за пределами своего повествования. Надеюсь, вы смогли
Ограниченное спецпредложение
Ограниченное спецпредложение Можно сделать праздничную распродажу для своих подписчиков на любой популярный праздник – Новый год, 8 марта, 14 февраля. Праздники общественные – это хорошо, но еще лучше, чтобы это был личный праздник. Например, в честь юбилея, дня рождения,
Копирование файлов
Копирование файлов Как описано ниже в главе "Состав модулей InterBase", минимальный корректный клиент InterBase состоит из трех файлов - gds32.dll, interbase.msg и msvcrt.dll.Опытные специалисты могут заявить, что абсолютный минимум - это библиотека gds32.dll, которую можно положить в тот же каталог, в
Вспомогательные средства для внутрипроцессного маршалинга
Вспомогательные средства для внутрипроцессного маршалинга Хотя фрагменты кода для WritePtr и ReadPtr из предыдущего раздела достаточно просто реализовать, большинство явных вызовов CoMarshalInterface будут использоваться для передачи интерфейсного указателя от одного потока к
Архитектура стандартного маршалинга
Архитектура стандартного маршалинга Как уже упоминалось ранее в этой главе, СОМ использует протокол ORPC для всех обращений между апартаментами. Это обстоятельство может представлять интерес с точки зрения архитектуры, но некоторые разработчики желают программировать
Копирование
Копирование Вставьте компакт-диск в привод. Щелкните мышью на кнопке Копировать с диска (рис. 3.22). С помощью соответствующих флажков отметьте произведения, предназначенные для копирования. В строке состояния при этом будет отображаться количество выбранных
Варианты маршалинга для объектов: MBR и MBV
Варианты маршалинга для объектов: MBR и MBV В рамках платформы .NET вы имеете на выбор два варианта того, как предоставить удаленный объект клиенту. Упрощенно говоря, маршалинг описывает правила передачи удаленного объекта из одного домена приложения в другой. При разработке
Копирование
Копирование В этом примере мы копируем базу данных, находящуюся на диске D: удаленного сервера, в файл копии на диске F: той же самой удаленной машины. Мы направляем подробный отчет об операции в файл протокола в другом каталоге. Как обычно, пример является одной строкой:gbak
Копирование
Копирование BlindWrite Suite Сайт: http://www.blindwrite.comРазмер: 2,8 МбСтатус: SharewareЦена: $32Весьма популярная на Западе программа для точного копирования дисков. Ранее поставлялась в виде двух отдельных модулей – BlindRead, отвечавшего за сброс содержимого диска в файл-образ и собственно
Как в ходе эволюции возникают адаптивные признаки, или Какую из теорий эволюции подтверждают данные современной генетики? Дмитрий Шабанов
Как в ходе эволюции возникают адаптивные признаки, или Какую из теорий эволюции подтверждают данные современной генетики? Дмитрий Шабанов Опубликовано 25 ноября 2013 В последних колонках я не раз обращался к теме ЭТЭ — эпигенетической теории
Глубокое клонирование и сравнение
Глубокое клонирование и сравнение Формы копирования и сравнения, реализуемые подпрограммами clone, equal и copy , называются поверхностными, поскольку они работают с объектами только на первом уровне, никогда не пытаясь следовать вглубь по ссылкам. Возникает необходимость для
Глубокое хранилище: первый взгляд на сохраняемость
Глубокое хранилище: первый взгляд на сохраняемость Изучение глубокого копирования и эквивалентности приводит к механизму, обеспечивающему серьезные практические преимущества ОО-метода, естественно, при условии его доступности в среде разработки.До сих пор обсуждение
Глава 13 Рассказ о возможном ходе развития семантики
Глава 13 Рассказ о возможном ходе развития семантики В этой главе представлено прагматичное чередование философских взглядов (в противоположность требованию, чтобы единая философия применялась всегда без исключения). В натуралистических рассуждениях об истоках
Фултон Хэл
Просмотр ограничен
Смотрите доступные для ознакомления главы 👉