我对 F# 相当陌生,并且来自 C++ 背景。我正在尝试编写一个简单的矢量类,它可以是泛型类型(int、float 等),但我在使用默认构造函数时遇到了麻烦。我想将这些值初始化为零,但要做到这一点,我需要以某种方式将具体的零转换为泛型类型,但我不知道该怎么做。
也许一些代码可能会有所帮助。这是我到目前为止所拥有的:
type Vector3D<'T> (x :'T, y: 'T, z: 'T) =
member this.x = x
member this.y = y
member this.z = z
new() = Vector3D<'T>(0,0,0) // what goes here?
我在突出显示的行上尝试了很多东西,但似乎无法让编译器满意。例如,我尝试过,Vector3D('T 0, 'T 0, 'T 0)
我认为应该将int
零转换'T
为零,但没有奏效。
我错过了一些基本的东西还是仅仅是获得正确语法的一个例子?