Remove ads

در علم رایانش، یک فضای نام (به انگلیسی: Namespace) یک مجموعه نماد می‌باشد که از آن برای سازمان دادن به انواع متفاوت شیء استفاده می‌شود، هدف آن است که این اشیا بتوانند توسط نام ارجاع شوند. یک فضای نام باید تضمین کند که همهٔ شناسه‌های موجود در آن نام یکتایی دارند و در نتیجه اشیاء به راحتی قابل شناسایی می‌باشند.[۱]

فضاهای نام معمولاً سلسله مراتبی هستند، دلیل این امر امکان استفاده مجدد از نام‌ها در زمینه‌های مختلف است.[۱]

مثال

مثال‌های برجسته از فضای نام شامل:[۱]

Remove ads

مقایسه فضای نام رایانه با فضای نام در انسان‌ها

برای مقایسه یک سیستم نامگذاری افراد را در نظر بگیرید، که در آن هر انسان یک نام خاص دارد و بعلاوه یک نام خانوادگی دارد که با وابستگان خود مشترک است. اگر نام کوچک برای اعضای خانواده تنها در یک خانواده یکتا باشد، آنوقت هر فرد می‌تواند به صورت منحصر به فرد با ترکیبی از نام کوچک و نام خانوادگی شناسایی شوند. تنها یک «بیژن شیرازی» وجود دارد، اگر چه ممکن است «بیژن» های زیادی وجود داشته باشد. در فضای نام خانواده «شیرازی»، تنها «بیژن» کافی است که به صورت غیر مبهم آن فرد را معین کند، در حالیکه در فضای نام «جهانی» برای همهٔ افراد، باید از نام کامل استفاده کرد.[۱]

  • به صورت مشابه، سیستم فایل سلسله مراتبی، فایل‌هایش را در پرونده‌ها (دایرکتوری) سازماندهی می‌کند. هر پرونده یک فضای نام جداگانه است، بنابراین کلمه‌ها و نیز مفاد درونی پرونده هر دو ممکن است شامل یک فایل «to_jane» باشند.
  • در زبان‌های برنامه‌نویسی، از فضای نام به صورت معمول برای اهداف گروه‌بندی نشانه‌ها و شناسه‌ها، در حول یک عملکرد بخصوص، و نیز جلوگیری برخورد اسامی بین چندین شناسه که دارای نام مشابه‌اند، استفاده می‌شود.
  • در شبکه‌سازی، سامانه نام دامنه وبگاه‌ها (و دیگر منابع) را به فضای نام سلسله مراتبی، سازمان‌دهی می‌کند.[۱]

به عبارت دیگر، فضای نام، این امکان را می‌دهد که موجودیت‌هایی مثل کلاس‌ها، اشیاء و توابع را تحت عنوان یک نام جمع کنیم.[۶]

Remove ads

یک مثال از فضای‌نام در زبان ++C

#include <iostream>

// این روش استفاده‌کننده از یک نام را به دامنه فعلی می‌آورد. در این مورد، آنها را به دامنه سراسری می‌آورد.
using std::cout;
using std::endl;

namespace box1 {
    int box_side = 4;
}

namespace box2 {
    int box_side = 12;
}

int main() {
    int box_side = 42;
    cout << box1::box_side << endl;  // خروجی 4 را نشان می‌دهد.
    cout << box2::box_side << endl;  // خروجی 12 را نشان می‌دهد.
    cout << box_side << endl;  // خروجی 42 را نشان می‌دهد.
}
ر
Remove ads

منابع

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.

Remove ads