F # - Пространства имен

А namespaceпредназначен для обеспечения возможности отделения одного набора имен от другого. Имена классов, объявленные в одном пространстве имен, не будут конфликтовать с такими же именами классов, объявленными в другом.

Согласно библиотеке MSDN, namespace позволяет организовывать код в области связанных функций, позволяя прикрепить имя к группе элементов программы.

Объявление пространства имен

Чтобы организовать свой код в пространстве имен, вы должны объявить пространство имен как первое объявление в файле. Затем содержимое всего файла становится частью пространства имен.

namespace [parent-namespaces.]identifier

Следующий пример иллюстрирует концепцию -

пример

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

Когда вы компилируете и выполняете программу, она дает следующий результат:

Values from Module1: ("one", "two", "three") 150
Values from Module2: seq [1; 4; 9; 16; ...] 200