我们在 f# 中创建类的方式存在这种二分法,这真的让我很困扰。我可以使用隐式格式或显式格式创建类。但是我想要的某些功能只能用于隐式格式,而有些功能只能用于显式格式。
例如:
let inline
* (或 let
单独)在显式定义的类中。val bla : bla
句法。但这里有一个冗余。因为我最终会得到相同不可变数据的两份副本,一份是私有(private)的,一份是公开的(因为在隐式模式下,构造函数参数在整个类存在期间都保持不变)
无论如何我可以解决这个问题吗?
*出于性能原因
编辑:事实证明我对这两点都错了(感谢 Ganesh Sittampalam 和 MichaelGG)。
let inline
在隐式和显式类定义中,我可以使用 member inline
很好,我认为它做同样的事情。最佳答案
这可能无济于事,但您可以使成员内联。 “成员(member)内联私有(private)”工作正常。
关于f# - 关于 F# 面向对象编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1212569/