
命名空间把名称放进一个明确范围,使相同名字可以分别指向不同对象。电脑里两个文件都叫 notes.txt,只要位于不同文件夹,就不必冲突;完整指向它们的不是文件名本身,而是文件夹路径加文件名。
它不同于别名。别名是多个名字指向同一对象;命名空间则允许同一个名字在不同范围内指向不同对象。它也不等于分类:分类回答对象属于哪一类,命名空间首先解决名称怎样被唯一解析。
命名空间的重要性在于,它让局部命名保持简短,同时避免整个系统要求每个名字都全球唯一。但范围必须可辨认,解析规则也必须稳定;一旦只把 notes.txt 脱离路径传给别人,原本被空间隔开的歧义就会重新出现。真正决定冲突的,不只是两个词是否相同,而是系统在什么范围内寻找它们。
了解 Geoffrey Chen 的更多信息
订阅后即可通过电子邮件收到最新文章。