Функция defaultof
использует специальный атрибут.Исходный код F #, опять же, полезен.Реализация функции находится в prim-types.fs
, но атрибут добавляется в файл интерфейса prim-types.fsi
.Комбинированная декларация будет выглядеть так:
[<RequiresExplicitTypeArguments>]
let inline unsafeDefault<'T> : 'T = (# "ilzero !0" type ('T) : 'T #)
Встроенный IL (# ... #)
ограничен ядром F #, но декларация может использоваться любым.
Атрибут можно найти в разделе 16 (стр. 217) спецификации F # :
При применении к функции или методу F # указывает, чтофункция или метод должны иметь явные аргументы типа при использовании.Например, typeof<int>
.Этот атрибут должен использоваться только в сборках F #.