Make it Classy (1)
除了获取类,class() 函数还可以用来重写对象的类。语法如下:
class(x) <- "some_class"
这对列表尤其有用,因为列表可以把其他变量组合成更复杂的变量。(还记得乐高类比吗:单个变量就像乐高积木,您可以用列表搭建出任意结构。)
在本练习中,您将查看一个用于存储国际象棋对局状态的对象,并重写它的类。
为便于理解练习,您需要了解一些国际象棋基础:
- 一盘棋有两位玩家,称为 "white" 和 "black"。
- 每位玩家有 6 种棋子:king、queen、bishops、knights、rooks 和 pawns。
- 每个棋子的位置可用行("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?
___