在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 listlist<int> 只是类型的名称。 f#Interactive打印如果输入一些值,则可以使用它来了解有关如何编写类型名称的更多信息:

> [1;2;3]
val it : int list = [ 1; 2; 3 ]
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top