Funcții generice primitive
O parte din funcționalitatea de bază a R este definită prin funcții primitive, care folosesc o tehnică specială de accesare a codului C, din motive de performanță. Exemple de funcții primitive includ elemente de limbaj, precum if și for, operatori precum + și $, și funcții matematice precum exp și sin. Printre funcțiile primitive se numără și genericele S3; lista completă a genericelor S3 primitive poate fi obținută cu .S3PrimitiveGenerics (docs).
Atunci când un generic S3 este primitiv, procesul de căutare a metodelor funcționează ușor diferit. R va căuta metodele folosind class (docs), ca de obicei, dar dacă nu găsește nimic, va apela funcția internă din codul C. (Spre deosebire de genericele obișnuite, unde se generează o eroare dacă nu este găsită nicio metodă.) Astfel, dacă suprascrii clasa unui obiect, comportamentul fundamental – de exemplu, calcularea lungimii – nu va fi afectat.
Acest exercițiu face parte din cursul
Programare orientată pe obiecte cu S3 și R6 în R
Instrucțiuni pentru exercițiu
În spațiul tău de lucru a fost atribuită variabilei hair o listă al cărei tip de clasă a fost suprascris cu "hairstylist".
- Vizualizează structura variabilei
haircustr()(docs). - Listează toate genericele S3 primitive pe care le cunoaște R.
- Folosește funcția
exists()(docs) pentru a verifica că nu există nicio funcție numitălength.hairstylist. Reține că această funcție primește un argument de tip caracter. - Calculează
length()(docs) al variabileihair.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# View the structure of hair
___
# What primitive generics are available?
___
# Does length.hairstylist exist?
___
# What is the length of hair?
___