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

Čí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")

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

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

Zobrazit kurz

Pokyny k cvičení

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

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

# Assign classes
___ <- ___

# Does kitty inherit from cat/mammal/character?
inherits(___, "___")
___
___

# Is kitty a character vector?
___

# Does kitty inherit from dog?
___
Upravit a spustit kód