Juste mon avis, mais je pense qu'il ya convention (non écrite) d'utiliser le préfixe as
dans ce Cas. Par exemple: as.data.frame
contraint divers objets à une trame de données. Même avec as.matrix
, as.Date
et as.list
...
Souvent, une fonction "non as
" appelle la fonction générique as
(par exemple data.frame
fonction appelle as.data.frame
).
Il est également recommandé d'implémenter une fonction avec le préfixe is
. Par exemple: is.data.frame
, is.list
.
Mais parfois ce n'est pas le cas. Par exemple formula
est un "coercer" générique et as.formula
ne l'est pas. Et il y a beaucoup de paquets avec une pratique combinée. Par exemple, igraph
inclut as.igraph
générique mais utilise from_data_frame
pour créer un objet à partir d'une trame de données.
Donc, je suppose que as.returns.zoo
sera aligné avec la pratique existante, mais returns.zoo
ne se trompe pas non plus.
Merci pour votre réponse. Couple de questions: le préfixe 'is' sert à tester si la classe est" something_after_dot ", n'est-ce pas? Donc, ça n'a rien à voir avec le constructeur, c'est juste sympa à mettre en place. Ai-je bien compris? Mon constructeur non seulement contraint, mais fait quelques calculs à l'intérieur (calcul des taux de rendement des prix). Même s'il est préférable de le nommer avec le préfixe «as»? – irudnyts
Oui, le préfixe _is_ est une autre histoire. Je ne pense pas qu'il y ait des frontières objectives et précises entre construire, contraindre, transformer et «calculer quelque chose». Parfois, vous devez décider pour vous-même. Si vous pensez que la fonction fait quelque chose à côté de la construction ou de la contrainte, trouvez le verbe correct et nommez-le de façon appropriée. Le seul critère est que les utilisateurs comprennent rapidement ce qu'ils font, – bergant