F# 测量单位,通用性问题 2

发布于 2024-07-13 09:56:08 字数 449 浏览 10 评论 0原文

这个问题之后,我似乎仍在与可能的前沿,尽管我不认为我正在做任何特别前沿的事情:

type Vector2d = { X: float<'u>; Y: float<'u> }

给我错误FS0039:未定义测量单位参数'u'。

type Vector2d = { X: float<_>; Y: float<_> }

给出我错误FS0191:此声明中不允许使用匿名测量单位变量。

是否是函数可以处理“通用”测量单位,但类型不能?

Following on from this question, I still seem to be battling at the frontiers of what is possible, though I don't think that I'm doing anything particularly bleeding edge:

type Vector2d = { X: float<'u>; Y: float<'u> }

Gives me error FS0039: The unit-of-measure parameter 'u' is not defined.

And

type Vector2d = { X: float<_>; Y: float<_> }

Gives me error FS0191: anonymous unit-of-measure variables are not permitted in this declaration.

Is it the case that functions can handle 'generic' units of measure, but types can't?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

如歌彻婉言 2024-07-20 09:56:08
type Vector2d<[<Measure>]'u> = { X: float<'u>; Y: float<'u> }

应该可以解决这个问题

注意:从 1.9.6.2 CTP 版本开始这是正确的,但此 api 目前被视为不稳定

type Vector2d<[<Measure>]'u> = { X: float<'u>; Y: float<'u> }

should do the trick

Note: This is correct as of the 1.9.6.2 CTP release but this api is not currently viewed as stable

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文