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

Connected

Cvičení

Čím více tříd, tím lépe

Proměnné mohou mít více než jednu třídu. V takovém případě class() (docs) vrací znakový vektor délky větší než jedna.

Více tříd nastavíš tak, že funkci class() přiřadíš znakový vektor. Třídy by měly být seřazeny od nejspecifičtější po nejobecnější (zleva doprava), protože chceš začít chováním, které je pro daný objekt nejpřesnější. Například:

x <- c("a", "e", "i", "o", "u")
class(x) <- c("vowels", "letters", "character")

Příslušnost k ostatním třídám ověříš pomocí univerzální funkce inherits() (docs). Například:

inherits(x, "vowels")

Pokyny

100 XP

Proměnná kitty je v tvém pracovním prostředí již připravena.

  • Zobraz proměnnou kitty zadáním jejího názvu.
  • Přiřaď proměnné kitty třídy "cat", "mammal" a "character".
  • Pomocí inherits() zkontroluj, že kitty má třídu "cat", "mammal" a "character" (každou zvlášť, v tomto pořadí).
  • Pomocí is.character() ověř, že kitty je stále znakový vektor.
  • Zkontroluj, že kitty nemá třídu "dog".