2015-07-10 2 views

ответ

4

As None неявно представлен как null, Option является ссылочным типом.

F # спецификация дает следующее определение, которое требует возможность быть ссылочный тип:

[<DefaultAugmentation(false)>] 
[<CompilationRepresentation(CompilationRepresentationFlags.UseNullAsTrueValue)>]  
type 'T option = 
    | None 
    | Some of 'T 
    static member None : 'T option 
    static member Some : 'T -> 'T option 
    [<CompilationRepresentation(CompilationRepresentationFlags.Instance)>] 
    member Value : 'T 
    member IsSome : bool 
    member IsNone : bool  
0
type Option<'T> = 
     | None :  'T option 
     | Some : Value:'T -> 'T option 

из FSharp Source Code показывает, что является ссылочным типом.

Смежные вопросы