在计算机和计算机程序设计的上下文中,“名称冲突”是指在某个逻辑外壳中两个项目具有相同名称的实例的技术术语。名称冲突可以在许多情况下发生,例如目录中的文件名,或者在一种程序中,函数中的局部变量与某些全局变量同名...
在计算机和计算机程序设计的上下文中,“名称冲突”是指在某个逻辑外壳中两个项目具有相同名称的实例的技术术语。名称冲突可以在许多情况下发生,例如目录中的文件名,或者在一种程序中,函数中的局部变量与某些全局变量同名。大多数情况下,名称冲突必须以某种方式立即解决,无论是由操作系统或编译器自动解决,还是通过用户输入和决策手动解决。命名空间的概念有时通过以下方式解决冲突问题:创建不同的逻辑区域,在这些区域中,具有相似名称的项可以共存而不产生歧义。在某些编程实例中,名称冲突可能不会立即显现,偶尔会导致难以发现的程序错误,这可能是由于编译器对所用项目的名称做出某些假设而导致的。手持计算机的一个名称冲突示例涉及两个充满文件的目录。如果每个目录都包含一个名为“DATA”的文件,当一个目录的内容被复制到另一个目录时,计算机试图复制名为DATA的文件时,会发现目标目录中已经存在同名的文件。这会造成名称冲突。在这种情况下,通常会提示用户并允许用户从一系列解决方案中进行选择,包括重命名其中一个文件,而不是复制该文件或覆盖其中一个文件。名称冲突的一个常用解决方案是实现命名空间。命名空间只是定义一个包含对象名称的区域的方法。在上面的示例中,从技术上讲,目录是一个命名空间,这意味着多个文件可以有相同的名称,只要它们在不同的目录中从编程的角度来看,名称冲突可能发生在多重继承、重叠变量作用域,甚至是某些语言的导入库中。通常,编译器会注意到冲突并生成警告或错误,尽管这种情况可能并不总是如此。除了使用命名空间之外,冲突在许多编程语言中,可以通过使用限定符来避免。限定符通常是一个前缀,可以放在一个变量或类名前面,以区别于另一个同名变量
-
发表于 2020-08-08 01:24
- 阅读 ( 2153 )
- 分类:电脑网络