1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Objektově orientované programování s S3 a R6 v R

Connected

Cvičení

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.

Pokyny

100 XP

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.