Domanda

In F # qual è il tipo di annotazione per un elenco digitato (e..g lista di int)? Con una funzione semplice che posso fare annotazioni nel seguente modo:

lasciare quadrati (x: int) = ...

ho annotato x come un tipo int. Ma cosa succede se voglio fare un tipo di annotazione per un elenco int? Per esempio, diciamo che ho una funzione max che si aspetta un elenco - come farei un tipo di annotazione per questo?

lasciare max (numeri: ??) = ...

È stato utile?

Soluzione

Ci sono due opzioni:

let max (numbers:int list) = ... 
let max (numbers:list<int>) = ... 

La prima sintassi utilizza la versione che viene ereditato da OCaml (ed è spesso utilizzato per primitive tipi F # come le liste). Il secondo usa la versione .NET di sintassi (ed è più frequentemente utilizzati per i tipi .NET o durante la scrittura di codice orientato agli oggetti in F #). Tuttavia, entrambi significano esattamente la stessa cosa.

In ogni caso, la forma di tipo annotazione è sempre (<something> : <type>) dove <something> è o un modello (come nella lista parametri) o un'espressione. Ciò significa che int list e list<int> sono solo nomi di tipi. F # Interactive stampa il tipo se si immette un certo valore, in modo da poter usare questo per ulteriori informazioni su come i nomi dei tipi sono scritti:

> [1;2;3]
val it : int list = [ 1; 2; 3 ]
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top