В чем разница между new () и setClass () в R? - PullRequest
0 голосов
/ 04 октября 2019

Мне любопытно, какова функциональная разница между new() и setClass() в R?

Я ответил на другой вопрос , который, кажется, предполагает, что они работают одинаково,за исключением того, что new() потенциально гораздо менее «ограничительный».

1 Ответ

2 голосов
/ 04 октября 2019

Эту ссылку можно найти в описании в верхней части страницы и в разделе Value: r Документация setClass

По ссылке:

  • Функция генератора, подходящая для создания объектов из класса, возвращается невидимым. Вызов этой функции генерирует вызов new для класса. Вызов принимает любое количество аргументов, которые будут переданы методу инициализации. Если метод инициализации для класса или одного из его суперклассов не определен, метод по умолчанию ожидает именованные аргументы с именем одного из слотов и безымянные аргументы, которые являются объектами одного из содержащихся классов.

  • Как правило, функции генератора присваивается имя класса для ясности программирования. Это не является обязательным требованием, и объекты из класса также могут быть сгенерированы непосредственно из нового. Преимущества функции генератора заключаются в несколько более простом и понятном вызове и в том, что этот вызов будет содержать имя пакета класса (устраняя любую двусмысленность, если два класса из разных пакетов имеют одно и то же имя).

  • Если класс виртуальный, попытка сгенерировать объект из генератора или new () приведет к ошибке.

...