题
在f#中,什么是键入列表的类型注释(例如,int列表)?使用一个简单的功能,我可以按以下方式进行注释:
令Square(x:int)= ...
我已经注释x作为int类型。但是,如果我想为INT列表进行类型注释怎么办?例如,假设我有一个期望列表的最大函数 - 如何为其进行类型注释?
令Max(数字:??)= ...
解决方案
有两个选择:
let max (numbers:int list) = ...
let max (numbers:list<int>) = ...
第一个版本使用从OCAML继承的语法(并且经常用于原始F#类型(例如列表)。第二版使用.NET语法(并且更常用于.NET类型或在F#中编写面向对象的代码时。但是,它们俩的含义完全相同。
无论如何,类型注释的形式始终是 (<something> : <type>)
在哪里 <something>
是模式(如参数列表中)或表达式。这意味着 int list
和 list<int>
只是类型的名称。 f#Interactive打印如果输入一些值,则可以使用它来了解有关如何编写类型名称的更多信息:
> [1;2;3]
val it : int list = [ 1; 2; 3 ]
不隶属于 StackOverflow