![]() |
1
1
编译器可以很好地理解如何应用乘法的单位规则,这里的问题是你有一个包装类型。在你的第一个例子中,当你写
当你有一个
鉴于类公开的方法,我认为使用
类似这样的东西可以给你一个单位友好向量:
在这种情况下,单位被附加到向量上,向量相乘可以按照正确的单位行为正常工作。
问题是,现在我们可以在
您可以将具有度量单位的特定类型的数组转换为
然后返回:
一个破旧的替代方案:
如果放弃泛型类型
|
![]() |
2
1
我想出了一个解决方案,它满足了我的大多数要求(看起来)。它的灵感来自
TheInnerLight's ideas
(包装
一个简化的、简单的、快速的、肮脏的实现将如下所示:
现在,我们可以使用这两种数据结构在 相当地 优雅、高效的方式:
最重要的是,重新实现单元感知的常规数组操作可能很有用
等
缺点:对于基础数字类型而言不是泛型的(
…这意味着我们基本上不是通过使用诸如
不过,我还是希望有人能想出更好的主意 |
![]() |
Thomas · 使类型别名在F中不可互换# 3 年前 |
![]() |
sdgfsdh · 我该怎么说。使用异步转换函数进行收集? 6 年前 |
![]() |
Soldalma · 我可以实例化包含顶级副作用值的类吗? 6 年前 |
![]() |
matekus · F#-包含数字的字符串的自然排序 6 年前 |
![]() |
matekus · F#类型匹配-无法创建映射或匹配记录 7 年前 |
![]() |
Rob Lyndon · 未找到F#ProvidedTypes文件 7 年前 |
![]() |
red-swan · 如何将intro ML.Net演示翻译为F#? 7 年前 |
![]() |
jkone27 · F#-在编译时从字符串生成简单的空类型 7 年前 |