F#中的“bigint”究竟是什么?

时间:2010-11-07 19:31:49

标签: f#

我理解bigint不是函数,而是类型构造函数。这就是失败的原因:

// Won't compile
let foo = 10 |> bigint

我知道我可以创建一个接受整数并返回bigint的新函数,然后管道运算符就可以工作。

但是,我不明白为什么会这样:

let bar = bigint 10

如果bigint是类型构造函数,为什么我不需要new?确切地将bigint定义为System.Numerics.BigInteger的构造函数的别名?

1 个答案:

答案 0 :(得分:8)

bigint是System.Numerics.BigInteger的类型abberviation,所以当你输入

let x = bigint 10

您实际上是在创建BigInteger的实例。在F#中,在构造函数中是可选的,基本上应该在创建实现IDisposable的类型实例时使用