我在 StackOverflow 中发现了一些有关错误 FS0670 ( This code is not sufficiently generic. ...
) 的问题,但所提出的解决方案都不能很好地解决我的问题(我是初学者,也许我错过了 F# 的一些概念)。
我有以下通用结构,我希望仅适用于原始类型(即 int16/32/64 和 single/float/decimal)。
[<Struct>]
type Vector2D<'T when 'T : struct and 'T:(static member get_One: unit -> 'T) and 'T:(static member get_Zero: unit -> 'T) > =
val x : 'T
val y : 'T
new( xp: 'T, yp: 'T ) = { x = xp; y = yp }
Run Code Online (Sandbox Code Playgroud)
但使用新的构造函数时,我收到提到的错误 FS0670。
有人知道可能的解决方案吗?提前谢谢了。