F # - przestrzenie nazw
ZA namespacema na celu zapewnienie sposobu na oddzielenie jednego zestawu nazw od drugiego. Nazwy klas zadeklarowane w jednej przestrzeni nazw nie będą kolidować z tymi samymi nazwami klas zadeklarowanymi w innej.
Zgodnie z biblioteką MSDN, plik namespace umożliwia zorganizowanie kodu w obszary powiązanych funkcji, umożliwiając dołączenie nazwy do grupy elementów programu.
Deklarowanie przestrzeni nazw
Aby zorganizować kod w przestrzeni nazw, musisz zadeklarować przestrzeń nazw jako pierwszą deklarację w pliku. Zawartość całego pliku staje się wtedy częścią przestrzeni nazw.
namespace [parent-namespaces.]identifier
Poniższy przykład ilustruje koncepcję -
Przykład
namespace testing
module testmodule1 =
let testFunction x y =
printfn "Values from Module1: %A %A" x y
module testmodule2 =
let testFunction x y =
printfn "Values from Module2: %A %A" x y
module usermodule =
do
testmodule1.testFunction ( "one", "two", "three" ) 150
testmodule2.testFunction (seq { for i in 1 .. 10 do yield i * i }) 200
Kiedy kompilujesz i wykonujesz program, daje to następujące dane wyjściowe -
Values from Module1: ("one", "two", "three") 150
Values from Module2: seq [1; 4; 9; 16; ...] 200