小编Pat*_*ick的帖子

正确的方式来定义与片大不可改变的类型得到更新?

我在F#中设计一个游戏对象.在C++中,我会创建类来表示每个动态值的图形方面,物理等,然后将这些类的实例添加到GameObject.我可以在F#中使用与可变类型相同的设计,但我试图保持一切不可变.因此,如果我使用相同的设计,我将每帧重新创建数千个大对象,并且可能花费所有cpu时间来分配.

有没有什么方法可以定义一个类型,我可以链接到另一个对象的值并提供新的值,以减少分配?

例如,为了改变盒子的颜色,我想使用旧盒子的内存和新的图形片段,并使用旧图形片段的内存和新颜色:

let box = ...
...

let changedBox = {box with 
                 graphics = { box.graphics with colour = blue} }
Run Code Online (Sandbox Code Playgroud)

f#

5
推荐指数
1
解决办法
187
查看次数

标签 统计

f# ×1