Cu Multe Clase
Variabilele pot avea mai mult de o clasă. În acest caz, class() (docs) returnează un vector de caractere cu lungime mai mare decât unu.
De asemenea, poți seta mai multe clase atribuind un vector de caractere funcției class(). Clasele ar trebui ordonate de la mai specifică la mai generală, de la stânga la dreapta, deoarece vrei să începi cu comportamentul cel mai bine adaptat obiectului tău. De exemplu:
x <- c("a", "e", "i", "o", "u")
class(x) <- c("vowels", "letters", "character")
Poți verifica celelalte clase folosind funcția de uz general inherits() (docs). De exemplu:
inherits(x, "vowels")
Acest exercițiu face parte din cursul
Programare orientată pe obiecte cu S3 și R6 în R
Instrucțiuni pentru exercițiu
Variabila kitty a fost predefinită în spațiul tău de lucru.
- Afișează variabila
kittytastând numele ei. - Atribuie clasele
"cat","mammal"și"character"variabileikitty. - Verifică, pe rând și în această ordine, că
kittyare clasele"cat","mammal"și"character"folosindinherits(). - Verifică că
kittyeste în continuare un vector de caractere folosindis.character(). - Verifică că
kittynu are clasa"dog".
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# View the kitty
kitty
# Assign classes
___ <- ___
# Does kitty inherit from cat/mammal/character?
inherits(___, "___")
___
___
# Is kitty a character vector?
___
# Does kitty inherit from dog?
___