Clojure - przestrzenie nazw
Namespacesw Clojure służą do rozróżniania klas na oddzielne przestrzenie logiczne, tak jak w Javie. Rozważ następujące stwierdzenie.
(:require [clojure.set :as set])
W powyższej instrukcji „clojure.set” jest przestrzenią nazw, która zawiera różne klasy i metody, które mają być używane w programie. Na przykład powyższa przestrzeń nazw zawiera funkcję o nazwie map-invert, która służy do odwracania mapy par klucz-wartość. Nie możemy użyć tej funkcji, chyba że wyraźnie powiemy naszemu programowi, aby zawierał tę przestrzeń nazw.
Przyjrzyjmy się różnym metodom dostępnym dla przestrzeni nazw.
| Sr.No. | Metody i opis |
|---|---|
| 1 | * ns * Służy do przeglądania bieżącej przestrzeni nazw. |
| 2 | ns Służy do tworzenia nowej przestrzeni nazw i kojarzenia jej z uruchomionym programem. |
| 3 | Alias Dodaj alias z bieżącej przestrzeni nazw do innej przestrzeni nazw. Argumentami są dwa symbole: używany alias i symboliczna nazwa docelowej przestrzeni nazw. |
| 4 | all-ns Zwraca listę wszystkich przestrzeni nazw. |
| 5 | find-ns Znajduje i zwraca określoną przestrzeń nazw. |
| 6 | nazwa-ns Zwraca nazwę określonej przestrzeni nazw. |
| 7 | aliasy-ns Zwraca aliasy, które są skojarzone z dowolnymi przestrzeniami nazw. |
| 8 | ns-map Zwraca mapę wszystkich mapowań dla przestrzeni nazw. |
| 9 | un-alias Zwraca mapę zawierającą tylko te wpisy w mapie, których klucz znajduje się w kluczach. |