【问题标题】:F# Units of measure, problems with genericity 2F# 度量单位,通用性问题 2
【发布时间】:2010-10-04 04:43:06
【问题描述】:

this 问题之后,我似乎仍然在可能的前沿进行战斗,尽管我不认为我在做任何特别前沿的事情:

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

给我错误 FS0039:未定义度量单位参数“u”。

还有

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

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

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

【问题讨论】:

  • 观点:完全使用单位是“前沿”。 :)

标签: f# units-of-measurement


【解决方案1】:
type Vector2d<[<Measure>]'u> = { X: float<'u>; Y: float<'u> }

应该做的伎俩

注意:这在 1.9.6.2 CTP 版本中是正确的,但这个 api 目前还不是稳定的

【讨论】:

  • f# 真的把语法高亮搞砸了不是吗:)
  • 有机会看看我的问题 1 吗? stackoverflow.com/questions/460766/…
  • @Benjol:Brian 的回答不正确吗?快速浏览一下似乎还可以
  • 我的回答可能不正确;显然,通用的非零值是 CTP 的无意特征。在下一个版本中可能会有对单元的修订(以及一系列错误修复以提供更好的诊断)。
  • 是的 - 非核心内容应该被视为一个移动目标 - 我可能应该在任何帖子上添加一个注释,以防它变得非常过时
猜你喜欢
  • 2010-10-02
  • 2018-06-15
  • 2019-11-12
  • 2012-07-05
  • 2015-05-01
  • 1970-01-01
  • 2011-02-09
  • 2016-04-06
  • 2016-04-11
相关资源
最近更新 更多