Frage
In F #, was ist die Art Anmerkung für eine typisierte Liste (e..g Liste von int)? Mit einer einfachen Funktion kann ich Anmerkungen wie folgt vor:
lassen Quadrat (x: int) = ...
Ich habe x als int-Typen mit Anmerkungen versehen. Aber was, wenn ich möchte eine Typanmerkung für eine int Liste tun? Zum Beispiel, sagen wir mal ich eine Max-Funktion, die eine Liste erwartet - wie würde ich eine Art Anmerkung für sie tun?
lassen max (Zahlen: ??) = ...
Lösung
Es gibt zwei Möglichkeiten:
let max (numbers:int list) = ...
let max (numbers:list<int>) = ...
Die erste Version verwendet Syntax, die von OCaml vererbt wird (und häufig für primitive F # Typen wie Listen verwendet wird). Die zweite Version verwendet .NET-Syntax (und wird häufig für die .NET-Typen verwendet, oder wenn die objektorientierten Code in F # Schreiben). beide jedoch bedeuten, genau das gleiche.
In jedem Fall ist die Form der Typanmerkung immer (<something> : <type>)
<something>
wo entweder ein Muster (wie in der Parameterliste) oder ein Ausdruck. Dies bedeutet, dass int list
und list<int>
sind nur Namen von Typen. F # Interactive gibt den Typ, wenn Sie einen Wert eingeben, so können Sie diese verwenden können, um mehr darüber zu erfahren, wie Typnamen geschrieben werden:
> [1;2;3]
val it : int list = [ 1; 2; 3 ]