在F#中,键入列表的类型注释是什么(例如int的列表)?通过简单的功能,我可以按如下方式进行注释:
让square(x:int)= ...
我已将x注释为int类型。但是如果我想为int列表做一个类型注释呢?例如,假设我有一个需要列表的max函数 - 我该如何为它做一个类型注释?
让max(数字:??)= ...
答案 0 :(得分:23)
有两种选择:
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 ]