Namespace o Modulo?

Per chi proviene da C# o da VB, l’utilizzo dei namespace e dei moduli in F# può sembrare un po’ anomalo, ma si tratta semplicemente di abituarsi a una diversa convenzione.

Bisogna tenere presente un concetto fondamentale:

  • i namespace possono contenere solo dichiarazioni di tipi e NON possono contenere valori;
  • i moduli possono contenere dichiarazioni di tipi e ANCHE valori.

Ecco un breve esempio:

namespace X
type Tipo = { i : int; s : string }

namespace Esempio1

module Y =
type Tipo = { i : int; s : string }
let Tipo = (10,"prova")

Per prima cosa abbiamo creato il namespace X e, al suo interno, abbiamo definito un nuovo tipo di nome “Tipo” e formato da due identificatori: l’intero “i” e la stringa “s”.

Successivamente abbiamo definito il namespace “Esempio1” senza alcuna definizione al suo interno.

Infine abbiamo creato il modulo “Y”, definendo gli stessi tipi che avevamo definito nel namespace “X”, ma con in più anche l’assegnazione dei valori agli identificatori (ultima riga).

Notate che nel caso del modulo, abbiamo dovuto utilizzare l’operatore di assegnazione (=), posto subito dopo al nome del modulo.

Pubblicato il 31 luglio 2015 su Novità. Aggiungi ai preferiti il collegamento . Lascia un commento.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: