Форум ДИЦ

Пользовательский и Дилерский форум ДИЦ
Текущее время: Пн июн 25, 2018 12:06 am

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Невозможно скопировать пользовательский объект
СообщениеДобавлено: Пн май 21, 2018 7:18 pm 
Не в сети

Зарегистрирован: Пт дек 08, 2017 11:51 am
Сообщения: 15
Откуда: Санкт-Петербург
Здравствуйте. Столкнулся с проблемой при попытке копировать значение объекта в другой объект. В моём случае я получаю ошибку "Нельзя присовить объекту класса Dict объект класса Dict". Пробовал разные способы:

В методе объекта.
Код:
inobject

  func copy: Dict;

    result = self.create;
    result.assign(self);
  end;
end;   


В методе класса.
Код:
inclass

  func copy(dict: Dict): Dict;

    result = self.create;
    result.assign(dict);
  end;
end;   


И другие. Процедура, по всей видимости, работает со встроенными объектами, я не встретил ошибку при присвоении значения объекта List другому объекту List.

Примеры тестирования:

Код:
    func test(test_list: List): List;

      result = List.create;
      result.assign(test_list);
    end;

    var test_list, other_list: List;

    test_list = List.create;
    test_list.add(1);
    test_list.add(2);

    trace(test_list);

    other_list = test(test_list);
    trace(other_list);

Выполняется успешно.

Код:
    func test(test_dict: Dict): Dict;
     
      result = Dict.create;
      result.assign(test_dict);
    end;

    var test_dict, other_dict: Dict;

    test_dict = Dict.combine(["a", "b"], [1, 2]);
    trace(test_dict);

    other_dict = test(test_dict);
    trace(other_dict);

Выполняется с ошибкой.

Изображение


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
 Заголовок сообщения: Re: Невозможно скопировать пользовательский объект
СообщениеДобавлено: Пн май 21, 2018 7:47 pm 
Не в сети

Зарегистрирован: Пт июн 29, 2012 12:18 am
Сообщения: 418
Откуда: Москва
Для своих классов перекройте Assign. Разумеется, код по копированию нужно будет написать самому.

_________________
ТБ.Бюджет


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB