gpt4 book ai didi

java - "equivalent"与 "equal"(或 "absolute equal")相同吗?

转载 作者:行者123 更新时间:2023-12-01 10:16:37 24 4
gpt4 key购买 nike

这两个词一直萦绕在我的脑海里。它们在逻辑上是相同的还是完全不同的?例如,在 Java 书籍:Liang 的编程简介中,他说:

You can use a generic class without specifying a concrete type likethis:

GenericStack stack = new GenericStack(); // raw type

This is roughly equivalent to

GenericStack<Object> stack = new GenericStack<Object>();

最佳答案

平等有很多层次。通常它们用“等于”或“等效”等词来指定。这些词的确切含义取决于上下文,但通常平等意味着等同,但反之则不然。

例如,给定两段代码AB,我们可以说AB如果它们由完全相同的字符组成,则它们是相等的,并且如果我们总是可以用 B 替换 A,则说它们是等价的,反之亦然,而不改变程序。如果我们这样做,

int i;
i = 10;

int i = 10;

不相等,但等价。

您引用的两个代码片段被作者称为“大致等效”。 “大致”一词表明它们根本不相等。事实上:

GenericStack stack = new GenericStack();
GenericStack<String> stack2 = stack;

编译(带有警告),而

GenericStack<Object> stack = new GenericStack<Object>();
GenericStack<String> stack2 = stack;

没有。

作者所说的“大致等效”的意思是原始类型的行为确实像 GenericStack<Object>在许多情况下,但不是全部情况下。特别是,您可以将任何对象放入其中。

关于java - "equivalent"与 "equal"(或 "absolute equal")相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35855603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com