ÎncepețiÎncepe gratuit

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

Vezi cursul

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 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.

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?
___
Editează și rulează codul