1. Learn
  2. /
  3. Cursuri
  4. /
  5. Programare orientată pe obiecte cu S3 și R6 în R

Connected

exercițiu

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.

Instrucțiuni

100 XP

Î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 hair cu str() (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 variabilei hair.