
【计】 name equivalence
name
【计】 name-to-address mapping
equal in value; equipollence; equivalence
【计】 equifinality; equivalence
【医】 equivalence
在汉英词典视角下,“名字等价性”(Name Equivalence)是计算机科学(特别是类型系统)和程序设计语言理论中的一个核心概念。它与“结构等价性”(Structural Equivalence)相对,用于描述如何判断两个数据类型是否相同。
名字等价性的详细解释:
核心定义 (Core Definition):
名字等价性指两个数据类型被认为是等价的,当且仅当它们具有相同的名字或标识符。这种等价性判断主要基于类型声明时赋予的名称,而不是类型内部的具体结构。如果两个类型在程序中由同一个类型声明引入,或者明确声明为别名(如通过 typedef
或类似机制),则它们是名字等价的。如果两个类型有不同的名字(即使它们的内部结构完全相同),在严格的名称等价下,它们也被视为不同的类型。
关键特征 (Key Characteristics):
typedef A B;
),那么 A 和 B 通常是名字等价的(取决于具体语言的规则)。它们共享同一个“名字身份”。与结构等价性的对比 (Contrast with Structural Equivalence): 这是理解名字等价性的关键。结构等价性关注类型的实际组成:
struct Point { int x; int y; };
struct Coordinate { int x; int y; };
typedef struct Point Point;
typedef struct Point Pnt;
struct Point
和 struct Coordinate
是不同的类型(名字不同)。Point
(typedef) 和 Pnt
(typedef) 都与 struct Point
是相同的类型(它们是别名)。Point
和 struct Coordinate
是不同的类型。struct Point
、struct Coordinate
、Point
、Pnt
都可能被视为相同的类型,因为它们具有相同的结构(两个 int 成员 x 和 y)。应用与语言实例 (Application and Language Examples):
A
和另一个类 B
即使结构相同,也是不同的类型。类型兼容性(如赋值、参数传递)严格遵循名字等价(或子类型关系,如继承)。参见 James Gosling 等人所著的 The Java Language Specification 以及 Anders Hejlsberg 等人所著的 The C# Programming Language。type
别名通常创建与原类型名字等价的新名称。总结 (Summary): 名字等价性是一种类型等价规则,它规定类型的身份由其名称(或声明标识)唯一确定。判断两个类型是否等价,只看它们是否拥有相同的名字(或是否通过别名机制绑定到同一个底层声明),而完全不考虑它们内部成员的结构是否相同。这与结构等价性形成鲜明对比,后者仅根据类型的内部组成来判断等价性。名字等价性在强调抽象、封装和类型安全的现代编程语言(如 Java, C#, C++ 的类类型)中更为常见。
关于“名字等价性”这一概念,需要结合计算机科学和逻辑学中的不同语境来理解,以下是综合解释:
基本定义
==
运算符比较对象时,判断的是两者的引用是否相同(即是否同一对象实例)。String a = new String("abc"); String b = a;
,此时a == b
为真,因为两者引用相同内存地址。与对象等价性的区别
equals()
方法实现,例如比较两个字符串的内容是否一致,即使它们存储在不同地址。String a = new String("abc"); String b = new String("abc");
,此时a.equals(b)
为真,但a == b
为假。在逻辑学中的延伸
应用场景
equals()
方法并维护hashCode()
的一致性;参考来源:更多技术细节可查看CSDN博客关于等价性的讨论。
爱克列斯一乔丹电路包合络合物步行困难超载保护程序设计语义学碘化铈对合模型反射性头痛发现物供认硅检波器谷胶纤维素还债期限幻肢活性堆料经验上的金岩卡耳佛特氏试验蓝石老年忧郁症脑膜炎双球菌内指示剂判别数字羟苯┭噻酮轻天花升降舵角申请运输保税货物输出集天线罩