Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 创建包含F中浮动的多个测量单位的列表#_List_F#_Units Of Measurement - Fatal编程技术网

List 创建包含F中浮动的多个测量单位的列表#

List 创建包含F中浮动的多个测量单位的列表#,list,f#,units-of-measurement,List,F#,Units Of Measurement,所以,我试着用各种方法来解决这个问题,但我就是做不到 有没有办法制作一个包含不同测量单位值的列表(全部基于浮点数)?例如: let myList = [0.07<ms>; 0.9; 7.2<mm>;] let myList=[0.07;0.9;7.2;] 由于它们被视为不同的类型,因此不能将它们放在同一列表中。我尝试将列表声明为let myList:float list=…,并给无量纲数字一个度量单位,但仍然遇到一个键入错误:应为列表的所有成员使用float。floa

所以,我试着用各种方法来解决这个问题,但我就是做不到

有没有办法制作一个包含不同测量单位值的列表(全部基于浮点数)?例如:

let myList = [0.07<ms>; 0.9; 7.2<mm>;]
let myList=[0.07;0.9;7.2;]

由于它们被视为不同的类型,因此不能将它们放在同一列表中。我尝试将列表声明为
let myList:float list=…
,并给无量纲数字一个度量单位,但仍然遇到一个键入错误:应为列表的所有成员使用float。
float
float
不同

列表中的所有成员。
float
float
不同

我认为您需要给出一个较长的示例,说明如何使用此列表。否则,很难给出一个好的答案,因为这取决于用途

如果你只想创建一个代表不同事物的数字列表,那么你可以考虑使用判别的联盟来区分它们:

type Numeric =
  | Length of float<mm>
  | Time of float<ms>
  | Unitless of float

let myList = [ Time 0.07<ms>; Unitless 0.9; Length 7.2<mm>;]
键入数字=
|浮子长度
|浮动时间
|无单位浮点数
设myList=[时间0.07;无单位0.9;长度7.2;]
然后,您可以创建一个包含不同数字(具有不同物理含义)的列表。迭代列表时,需要使用模式匹配来提取值

或者,您可以在创建列表时删除所有单位,但这样您就失去了度量单位提供的保证(也就是说,当您从列表中获得一些值时,您将不知道它有什么单位,并且可能会错误地解释它):

let myList=[float 0.07;0.9;float 7.2;]

您也可以使用。

我认为您需要给出一个较长的示例,说明如何使用此列表。否则,很难给出一个好的答案,因为这取决于用途

如果你只想创建一个代表不同事物的数字列表,那么你可以考虑使用判别的联盟来区分它们:

type Numeric =
  | Length of float<mm>
  | Time of float<ms>
  | Unitless of float

let myList = [ Time 0.07<ms>; Unitless 0.9; Length 7.2<mm>;]
键入数字=
|浮子长度
|浮动时间
|无单位浮点数
设myList=[时间0.07;无单位0.9;长度7.2;]
然后,您可以创建一个包含不同数字(具有不同物理含义)的列表。迭代列表时,需要使用模式匹配来提取值

或者,您可以在创建列表时删除所有单位,但这样您就失去了度量单位提供的保证(也就是说,当您从列表中获得一些值时,您将不知道它有什么单位,并且可能会错误地解释它):

let myList=[float 0.07;0.9;float 7.2;]

您也可以使用。

您能给出这样做的动机吗?编译器正在迫使您做一件好事。我想使用列表作为函数的参数,根据使用哪个对象(从派生类创建,所有对象都来自同一个抽象类)计算,使用的值略有不同。为什么它强迫我做一件好事?我不明白!计量单位的发明实际上正是为了这个原因:防止你意外地混合使用
。处理这些值的函数还将推断出正确的参数类型。请分享一些使用代码,以便我们了解您计划如何使用它。您能给出这样做的动机吗?编译器正在迫使您做一件好事。我想使用列表作为函数的参数,根据使用哪个对象(从派生类创建,所有对象都来自同一个抽象类)计算,使用的值略有不同。为什么它强迫我做一件好事?我不明白!计量单位的发明实际上正是为了这个原因:防止你意外地混合使用
。处理这些值的函数还将推断出正确的参数类型。请分享一些使用代码,以便我们了解您计划如何使用它。谢谢,这真的很有帮助!我不敢相信我没有想过尝试歧视工会,这似乎对我想做的事情很有效。。。就我目前所知!我仍处于调查阶段,所以我没有太多的代码要显示,而且在这个阶段我所拥有的没有多大意义,我向您道歉并感谢您的帮助。:)谢谢你的链接,我在模糊地阅读一些与此相关的东西,我还没有看到那篇文章。谢谢,这真的很有帮助!我不敢相信我没有想过尝试歧视工会,这似乎对我想做的事情很有效。。。就我目前所知!我仍处于调查阶段,所以我没有太多的代码要显示,而且在这个阶段我所拥有的没有多大意义,我向您道歉并感谢您的帮助。:)也谢谢你的链接,我正在模糊地阅读一些与此相关的东西,我还没有看到那篇文章。