我理解bigint
不是函数,而是类型构造函数。这就是失败的原因:
// Won't compile
let foo = 10 |> bigint
我知道我可以创建一个接受整数并返回bigint
的新函数,然后管道运算符就可以工作。
但是,我不明白为什么会这样:
let bar = bigint 10
如果bigint
是类型构造函数,为什么我不需要new
?确切地将bigint
定义为System.Numerics.BigInteger的构造函数的别名?
答案 0 :(得分:8)
bigint是System.Numerics.BigInteger的类型abberviation,所以当你输入
let x = bigint 10
您实际上是在创建BigInteger的实例。在F#中,在构造函数中是可选的,基本上应该在创建实现IDisposable的类型实例时使用