F#泛型

2018-12-16 10:27 更新

泛型允许延迟类或方法中的编程元素的数据类型的规范,直到它在程序中实际使用。 换句话说,泛型允许你编写一个可以处理任何数据类型的类或方法。
您可以使用数据类型的替代参数来编写类或方法的规范。 当编译器遇到类的构造函数或方法的函数调用时,它会生成代码来处理特定的数据类型。
在F#中,函数值,方法,属性和聚合类型(如类,记录和区别联合)可以是通用的。
通用结构包含至少一个类型参数。 通用函数和类型使您能够编写适用于各种类型的代码,而无需重复每种类型的代码。

语法

编写通用构造的语法如下 

// Explicitly generic function.
let function-name<type-parameters> parameter-list =
   function-body

// Explicitly generic method.
[ static ] member object-identifer.method-name<type-parameters> parameter-list [ return-type ] =
   method-body

// Explicitly generic class, record, interface, structure,
// or discriminated union.
type type-name<type-parameters> type-definition

例子

(* Generic Function *)
let printFunc (x: 'a) =
   do printfn "%A" x

let gr = new genericClass<string>("zara")
let gs = genericClass( seq { for i in 1 .. 10 -> (i, i*i) } )

当你编译和执行程序,它产生以下输出 

"zara"
seq [(1, 1); (2, 4); (3, 9); (4, 16); ...]
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号