Что именно означает "bigint" в F #? - PullRequest
9 голосов
/ 07 ноября 2010

Я понимаю, что bigint это не функция, а конструктор типа.Вот почему это не получается:

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

Я понимаю, что могу создать новую функцию, которая принимает целое число и возвращает bigint, и тогда оператор конвейера будет работать.

Однако,Я не понимаю, почему это работает:

let bar = bigint 10

Если bigint является конструктором типа, почему мне не нужен new?Где именно bigint определен как псевдоним для конструктора System.Numerics.BigInteger?

1 Ответ

8 голосов
/ 07 ноября 2010

bigint - это аббревиатура типа для System.Numerics.BigInteger, поэтому при вводе

let x = bigint 10

вы на самом деле создаете экземпляр BigInteger. В F # new является необязательным в конструкторах, в основном его следует использовать при создании экземпляров типов, реализующих IDisposable

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...