Was ist der Zweck der Annotation flexibler Typen in F #?

8

Ich studiere F # und ich verstehe den Zweck der flexiblen Typen nicht, oder besser, ich kann den Unterschied zwischen dem Schreiben dieses nicht verstehen:

%Vor%

und dies schreiben:

%Vor%

wobei Control die Klasse System.Windows.Forms.Control ist.

    
Fr.Usai 22.01.2013, 11:31
quelle

2 Antworten

13

In Ihrem Beispiel gibt es keinen Unterschied. Wenn Rückgabetypen eingeschränkt sind, sehen Sie den Unterschied:

%Vor%

Beachten Sie, dass #Control eine Verknüpfung von 'T when 'T :> Control ist. Typbeschränkungen sind wichtig, um generische Funktionen für Subtypen zu erstellen.

Zum Beispiel

%Vor%

gegen

%Vor%     
pad 22.01.2013, 12:23
quelle
7

Wenn ein Wert direkt als Argument an eine F # -Funktion übergeben wird, erhöht der Compiler automatisch den Wert (wenn also die Funktion Control benötigt, können Sie ihr TextBox -Wert geben). Also, wenn Sie einen flexiblen Typ als eine Art von Parameter verwenden, gibt es keinen großen Unterschied.

Es gibt jedoch einen Unterschied, wenn die Funktion beispielsweise eine Liste 'T list :

verwendet %Vor%     
Tomas Petricek 22.01.2013 12:07
quelle