In informatica un namespace, o in italiano spazio dei nomi, è una collezione di nomi di entità, definite dal programmatore, omogeneamente usate in uno o più file sorgente. Lo scopo dei namespace è quello di evitare confusione ed equivoci nel caso siano necessarie molte entità con nomi simili, fornendo il modo di raggruppare i nomi per categorie.
Attualmente il concetto di namespace è presente esplicitamente nell'XML, nel linguaggio di programmazione C++ e nelle ultime versioni di PHP, ed implicitamente in altri linguaggi.
C++
[modifica | modifica wikitesto]Un namespace in C++ è invece un insieme di nomi in senso matematico, non ha né un ordine né una struttura interna. Il programmatore può definire i suoi spazi di nomi dichiarandoli con l'istruzione
namespace <nomedelnamespace> { <dichiarazione_1>; <dichiarazione_2>; ... <dichiarazione_N>}
e richiamarli in uso al momento del bisogno con l'istruzione
using namespace <nomedelnamespace>;
Tipicamente, nella programmazione C++ la necessità dei namespace si inizia ad avvertire per programmi di dimensioni medio-grandi, tuttavia utilizzare i namespace aiuta a strutturare il codice sorgente in modo migliore anche nei piccoli progetti. Il namespace più usato in ambiente C++ è il namespace std
della libreria standard C++.
Namespace su MediaWiki
[modifica | modifica wikitesto]Nelle wiki create con il software MediaWiki, i namespace si utilizzano come prefissi delle pagine, per delimitarne l'ambito. Un esempio è quello di Teknopedia in italiano, sulla quale sono attivi diversi namespace come[1]:
- Namespace principale – è quello di ciascuna delle voci che compongono l'enciclopedia
- Namespace Teknopedia: indica essenzialmente le pagine di servizio afferenti all'enciclopedia
- Namespace Aiuto: raggruppa le pagine di aiuto utili sia per coloro che si avvicinano per la prima volta a Teknopedia sia per chi vi opera abitualmente
- Namespace Portale: precede il nome dei portali attivi su Teknopedia
- Namespace Progetto: precede il nome dei progetti attivi su Teknopedia
- Namespace Utente: indica le pagine degli utenti di Teknopedia
- Namespace File: precede il nome di un file multimediale (audio, video o immagine) caricato su Teknopedia
- Namespace Categoria: indica il nome di una categoria
- Namespace Template: identifica uno strumento specifico di lavoro su Teknopedia
A tutti i namespace sopraelencati, incluso il namespace principale, è associato uno specifico namespace per le pagine di discussione (ad esempio Discussioni utente: è quello associato al namespace Utente:)
Note
[modifica | modifica wikitesto]- ^ Vedi Aiuto:Namespace
Collegamenti esterni
[modifica | modifica wikitesto]- (EN) Denis Howe, namespace, in Free On-line Dictionary of Computing. Disponibile con licenza GFDL
- https://www.w3.org/TR/REC-xml-names/