你能举例说明一个人如何代表一个具有可变属性的"玩家"类,如HP和位置(3d矢量),init,setter和getter等函数?
mik*_*era 12
在真正惯用的Clojure中,你的"玩家"将是不可变的,你可能会将其表示为地图,例如:
{:type :player
:team :red
:hit-points 10
:location [17 9 6]}
Run Code Online (Sandbox Code Playgroud)
玩家可能包含在更大的"世界"数据结构中,并且会有一个纯函数update-world可以创建一个具有任何必要修改的新世界(例如将玩家移动到新位置).
至于getter/setter - 只需使用法线贴图操作函数.在您操作标准Clojure数据时,通常不需要getter/setter.