Začněte nyníZačněte zdarma

Primitivní generické funkce

Část základní funkcionality R je definována pomocí primitivních funkcí, které využívají speciální techniku přístupu k C-kódu kvůli výkonu. Mezi primitivní funkce patří jazykové prvky jako if a for, operátory jako + a $ nebo matematické funkce jako exp a sin. Primitivní funkce zahrnují i S3 generiky; úplný seznam primitivních S3 generik najdeš pomocí .S3PrimitiveGenerics (docs).

Když je S3 generická funkce primitivní, vyhledávání metod funguje trochu jinak. R hledá metody pomocí class (docs) jako obvykle, ale pokud nic nenajde, zavolá interní C-kódovou funkci. (Na rozdíl od běžných generik, kde se při nenalezení metody vyhodí chyba.) Díky tomu přepsání třídy objektu nezpůsobí, že základní operace jako výpočet délky přestanou fungovat.

Toto cvičení je součástí kurzu

Objektově orientované programování s S3 a R6 v R

Zobrazit kurz

Pokyny k cvičení

V pracovním prostředí máš přiřazenou proměnnou hair — jde o objekt typu seznam, jehož třída byla přepsána na "hairstylist".

  • Zobraz strukturu hair pomocí str() (docs).
  • Vypiš všechny primitivní S3 generiky, které R zná.
  • Pomocí funkce exists() (docs) ověř, že funkce s názvem length.hairstylist neexistuje. Nezapomeň, že tato funkce přijímá řetězec jako vstup.
  • Vypočítej length() (docs) proměnné hair.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# View the structure of hair
___

# What primitive generics are available?
___

# Does length.hairstylist exist?
___

# What is the length of hair?
___
Upravit a spustit kód