Scala 结果动词等于动词之前不考虑字符串
在下面的代码中,比较两个逻辑上相等的ResultToStringPassedTowB实例,应该打印 两者都是平等的 但它会打印出来 两者都不同Scala 结果动词等于动词之前不考虑字符串,scala,scalatest,Scala,Scalatest,在下面的代码中,比较两个逻辑上相等的ResultToStringPassedTowB实例,应该打印 两者都是平等的 但它会打印出来 两者都不同 由于ResultOfStringPassedToVerb类不会覆盖用于比较的equals方法,因此equals或=(在Scala中,=等于equals方法正在比较m1和m2的参考地址,由于它们是两个对象,引用地址不应相同,因此等于方法返回false 您可以从Java的equals方法中找到更多详细信息: 由于resultofstringpassedtof
由于
ResultOfStringPassedToVerb
类不会覆盖用于比较的equals
方法,因此equals
或=
(在Scala中,=
等于equals
方法正在比较m1
和m2
的参考地址,由于它们是两个对象,引用地址不应相同,因此等于方法返回false
您可以从Java的equals
方法中找到更多详细信息:
由于resultofstringpassedtoff
类不会覆盖equals
方法进行比较,因此equals
或=
(在Scala中,=
等于equals
方法)方法是比较m1
和m2
的引用地址,因为它们是两个对象,引用地址不应该相同,所以等于方法返回false
您可以从Java的equals
方法中找到更多详细信息:
package msgs
import org.scalatest.FlatSpecLike
import org.scalatest.Matchers._
import org.scalatest.words.ResultOfStringPassedToVerb
/**
* Created by mogli on 9/1/17.
*/
object FlatSpecMsgs extends FlatSpecLike {
def main(args: Array[String]): Unit = {
val m1: ResultOfStringPassedToVerb = "a" should "b"
val m2 = "a" should "b"
// println(m1)
// println(m2)
if (m1.equals(m2)) {
println("both are equal")
} else {
println("both are different")
}
}
}