Fonctions génériques primitives
Une partie des fonctionnalités de base de R est définie à l’aide de fonctions primitives, qui utilisent une technique spéciale pour accéder au code C, pour des raisons de performance. Des exemples de fonctions primitives incluent des éléments du langage, comme if et for, des opérateurs comme + et $, ainsi que des fonctions mathématiques comme exp et sin. Les fonctions primitives comprennent des génériques S3 ; la liste complète des génériques primitifs S3 peut être obtenue avec .S3PrimitiveGenerics (docs).
Lorsqu’un générique S3 est primitif, son processus de recherche des méthodes fonctionne légèrement différemment. R recherchera des méthodes en utilisant class (docs), comme d’habitude, mais si rien n’est trouvé, la fonction interne en code C sera appelée. (À comparer aux génériques « classiques », où une erreur est levée si aucune méthode n’est trouvée.) Cela signifie que si vous remplacez la classe d’un objet, des comportements fondamentaux comme le calcul de la longueur ne seront pas cassés.
Cet exercice fait partie du cours
Programmation orientée objet avec S3 et R6 en R
Instructions
Un objet liste, dont la classe a été remplacée par "hairstylist", a été assigné dans votre espace de travail à la variable hair.
- Affichez la structure de
hairavecstr()(docs). - Listez tous les génériques primitifs S3 connus de R.
- Utilisez la fonction
exists()(docs) pour vérifier qu’aucune fonction nomméelength.hairstylistn’existe. Notez que cette fonction prend une entrée de type caractère. - Calculez la
length()(docs) de la variablehair.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# View the structure of hair
___
# What primitive generics are available?
___
# Does length.hairstylist exist?
___
# What is the length of hair?
___