Scala中的Array[Byte] diff

3
我正在使用diff方法来比较两个字符串的字节数组,但结果与预期不符(或者说是预期的行为?)。
对于(subString diff originalString),diff()返回true,但对于(originalString diff subString),则返回false。如果有人能解释一下就太好了。以下是代码示例和输出。
代码片段:
val subString : Array[Byte] = "cde".getBytes("UTF-8")
val originalString : Array[Byte] = "abcdefg".getBytes("UTF-8")

println(s"compare subString with originalString - ${((subString diff originalString).isEmpty).toString}")
println(s"compare originalString with subString - ${((originalString diff subString).isEmpty).toString}")

输出

compare subString with originalString - true

compare originalString with subString - false
1个回答

5

diff 不是 比较;它更像是集合差异,"第一个字符串中有哪些字符不在第二个字符串中?"

"abcd" diff "a" = "bcd"
"a" diff "abcd" = ""

因此,这些几乎是等价的:

"abc".toSet diff "cb".toSet = Set(a)
"abc" diff "cb" = "a"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接