小编Gan*_*oss的帖子

F# 通用结构构造函数和错误 FS0670

我在 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。

有人知道可能的解决方案吗?提前谢谢了。

generics f# constructor struct

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

标签 统计

constructor ×1

f# ×1

generics ×1

struct ×1