我在写我的代码,就好像这些都是同样的事情,并没有问题,但它的开始,当我徘徊迷惑我在Visual Studio中的函数,看到该类型定义包含3种不同类型,我有以为都是一样的。他们是一样的吗?或者它们不同?浮点数组,float []和double []是不同的,还是相同的?
回答
他们是相同的。请参阅FSharp.Core文档底部的类型缩写。 float = double = System.Double
和array<'T> = 'T[]
。您也可以定义自己的类型的缩写,并利用它们以同样的方式:
type dbl = double
let (d:dbl) = 1.0
你没有问这个问题,但要注意的是,一个地方型的缩写可能不是很喜欢你所期望的工作措施类型; float<_>
定义的float
,double
,和独立地System.Double
,而且也没有这样的东西作为一个相应double<_>
或System.Double<_>
。
好吧,谢谢kvb ... – 2010-03-09 20:38:37
除了键入的缩写,有两个有用的东西了解F#的类型。首先,有两种方法来编写泛型类型的名称。一种方法是使用OCaml的语法和所述第二方式是使用.NET语法:
- 当使用.NET语法,则写
array<'T>
或例如OtherType<'T1, 'T2>
(对于类型与一个以上的一般类型参数) 。 - 在OCaml的语法,同样的事情写为
'T array
或('T1, 'T2) OtherType
这两个符号是等价的 - 当你声明使用.NET语法注释类型的值,你可以将它分配一个值使用OCaml语法进行注释。 'T[]
是一个数组特殊的符号,但是这也解释了为什么array<'T>
相同'T array
。
的第二件事情是,F#用来浮点数类型有点可惜命名。这可能是由于与OCaml的相容性,但是它可以很容易混淆.NET程序员:
- F#浮子类型对应于.NET
System.Double
(其在C#称为double
) - F#FLOAT32类型对应于在
System.Single
.NET(其在C#称为float
)
作为@kvb指出的,双是另一个吨yyp别名为System.Double
类型。
当然,还有缩写'single',它也是'float32'的同义词, 。和'int = int32 = System.Int32'和'int8 = sbyte = System.SByte'等 – kvb 2010-03-09 21:53:00
- 1. 处理float和double类型具有相同的泛型参数
- 2. 我应该使用double还是float?
- 3. 不同的执行时间还是相同的不同选项?
- 4. '功能依赖'和'正常化'是相同还是不同?
- 5. asp.net和c#.net webform有什么不同?是相同还是不同?
- 6. atof()for float而不是double
- 7. 这两个查询是相同还是相同的输出?
- 8. 在WPF中,所有浮点数值都使用Double而不是Float吗?
- 9. 如何判断给定的值在Java中是float还是double?
- 10. MATLAB - 如何比较两个对象是相同还是不同
- 11. 两个随机浮点数相同的概率是多少?
- 12. 比较两个临时表中的值是相同还是不同
- 13. 相同的字符串是不同的
- 14. asp.net中的Webconfig与多个用户相同还是不同?
- 15. Java DecimalFormat显示float和double的不同结果
- 16. 可以使UITextField和UITextView呈现字体相同,还是只是不同?
- 17. 我使用整数还是浮点数?
- 18. C++标准决定这两种访问数组的方法是相同还是不同?
- 19. 不同的数据类型操作double-float
- 20. 为什么float的精度与double相同?
- 21. 为什么Float和Double在添加0.1和0.2时不同?
- 22. 检查float是“奇数”还是“偶数”?
- 23. float和double输出
- 24. 是否 - >和[],对于php数组都是相同的东西?
- 25. 网站和移动应用的登录API应该相同还是不同?
- 26. JAXB,BigDecimal还是double?
- 27. Weka总是为不同的数据生成相同的簇
- 28. 差异应该是相同
- 29. scanf浮点数,打印浮点数,不同的值?
- 30. 使用不同还是不是
http://msdn.microsoft.com/en-us/library/dd233193.aspx – 2013-08-30 03:19:02