很长一段时间java程序员慢慢学习scala(顺便爱上它),我认为我的思想仍然围绕着功能性写东西的概念.现在我正在尝试为一些移动的2D纹理编写一个简单的可视化器.命令式方法很简单,我相信大多数人都会认识到这个相对无处不在的代码块(改变了东西以保护无辜者):
class MovingTexture(var position, var velocity) extends Renders with Advances {
def render : Unit = {...}
def advance(milliseconds : Float) : Unit = {
position = position + velocity * milliseconds
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码可以正常工作,但它有大量的可变状态,其功能充满了副作用.我不能让自己逃脱这一点,必须有更好的方法!
有没有人对这个简单的问题有一个惊人,优雅,实用的解决方案?有谁知道我可以学到更多解决这些问题的来源?