Ge det en klass (1)
Förutom att hämta en klass kan funktionen class() även användas för att ändra den. Syntaxen är
class(x) <- "some_class"
Detta är särskilt användbart för listor, eftersom listor kan kombinera flera variabler till mer komplexa strukturer. (Tänk på Lego-analogin: enskilda variabler är som Lego-bitar, och med listor kan du bygga vad du vill.)
I den här övningen tittar du på ett objekt som lagrar tillståndet i ett schackparti och ändrar dess klass.
För att förstå övningen behöver du känna till grunderna i schack.
- Det finns två spelare i ett schackparti: "white" och "black".
- Varje spelare har sex typer av pjäser: kung, drottning, löpare, springare, torn och bönder.
- Varje pjäss position anges med rad ("a" till "h") och kolumn (1 till 8).
Den här övningen är en del av kursen
Objektorienterad programmering med S3 och R6 i R
Övningsinstruktioner
Listvariabeln chess är fördefinierad i din arbetsmiljö.
- Utforska
chessför att förstå dess struktur. - Ändra klassen för
chesstill"chess_game". - Kontrollera om
chessfortfarande är en lista med hjälp avis.list()(docs). - Ta reda på hur många pjäser som finns kvar på brädet.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Explore the structure of chess
str(chess)
# Override the class of chess
___ <- ___
# Is chess still a list?
___
# How many pieces are left on the board?
___