讓它更有「類別」感(1)
除了讀取物件的類別之外,class() 也能用來覆寫類別。語法如下:
class(x) <- "some_class"
這對清單(list)特別實用,因為清單可以把多個變數組合成更複雜的變數。(還記得樂高的比喻嗎:單一變數就像一塊樂高積木,而你可以用清單把它們組起來,打造你想要的東西。)
在這個練習中,你會查看一個用來儲存西洋棋棋局狀態的物件,並覆寫它的類別。
為了看懂這個練習,你需要一點西洋棋的背景知識。
- 一局西洋棋有 2 位玩家,分別是「white」與「black」。
- 每位玩家有 6 種棋子:king、queen、bishop、knight、rook,以及 pawn。
- 每個棋子的棋位可用列(「a」到「h」)與行(1 到 8)來記錄。
本練習屬於課程
在 R 中使用 S3 與 R6 的物件導向程式設計
練習說明
工作空間裡已經預先定義了清單變數 chess。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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?
___