在阅读数学和计算机科学时,我已经读过一些使用等价符号 的实例(基本上是带有三行的'='),对我而言,将其视为相等是很有意义的。这两个概念有什么区别?

最佳答案

Wikipedia: Equivalence relation:



换句话说,=只是等价关系的一个实例。

编辑:自反,对称和可传递的看似简单的标准并不总是琐碎的。请参见Bloch的有效Java第二版。例如35

public final class CaseInsensitiveString {
...
    // broken
    @Override public boolean equals(Object o) {
        if (o instance of CaseInsensitiveString)
            return s.equalsIgnoreCase(
                ((CaseInsensitiveString) o).s);
        if (o instanceof String) // One-way interoperability!
            return s.equalsIgnoreCase((String) o);
        return false;
    }
...

}

上面的equals实现破坏了对称性,因为CaseInsensitiveString知道String类,但是String类不知道CaseInsensitiveString

08-27 22:47