You can get an error because when you define your Player
class, you set the possession
field to have type Ball
. But in your pass
function, you set possession
to be NULL:
possession <<- NULL
If you change the initialisation to:
p = setRefClass('Player', fields = list(name = 'character', possession = 'ANY')
then everything works as expect:
R> p2$receive(p1$pass())
R> p1
Reference class object of class "Player"
Field "name":
[1] "Ronaldinho"
Field "possession":
NULL
R> p2
Reference class object of class "Player"
Field "name":
[1] "Beckham"
Field "possession":
Reference class object of class "Ball"
Field "size":
[1] 5