Dictionary reflect.DeepEqual映射[string][]字符串在应为True时给出False

Dictionary reflect.DeepEqual映射[string][]字符串在应为True时给出False,dictionary,go,slice,Dictionary,Go,Slice,我正在测试一个函数,该函数从一段单词(字符串)创建一个字谜字典。我正在比较map[string][]字符串。当我使用reflect.DeepEqual()测试函数时,我得到false,当进一步检查时,我发现映射是相同的 代码: 再次,在运行测试之后,我得到了一个false,表示deep equals,即使打印出来的两个映射是相同的。我错过了什么吗 ***编辑: 我已经更新了失败的测试,以提供更多信息。代码在这里 func TestAnagramDictFromWordSlice(t *testi

我正在测试一个函数,该函数从一段单词(字符串)创建一个字谜字典。我正在比较map[string][]字符串。当我使用reflect.DeepEqual()测试函数时,我得到false,当进一步检查时,我发现映射是相同的

代码:

再次,在运行测试之后,我得到了一个false,表示deep equals,即使打印出来的两个映射是相同的。我错过了什么吗

***编辑:

我已经更新了失败的测试,以提供更多信息。代码在这里

func TestAnagramDictFromWordSlice(t *testing.T) {
words := []string{"abaci", "aback", "abacus", "abacuses", "abaft", "abalone", "fabat", "cusaba"}
expected := make(map[string][]string)
expected["aabci"] = []string{"abaci"}
expected["aabck"] = []string{"aback"}
expected["aabcsu"] = []string{"abacus", "cusaba"}
expected["aabcessu"] = []string{"abacuses"}
expected["aabft"] = []string{"abaft", "fabat"}
expected["aabelno"] = []string{"abalone"}
actual := AnagramDictFromWordSlice(words))
if !reflect.DeepEqual(expected, actual) {
    t.Errorf("\nExpected %v, \ngot %v", expected, actual)
    t.Errorf("Expected: %v, Got: %v, %t", expected["aabci"], actual["aabci"], reflect.DeepEqual(expected["aabci"], actual["aabci"]))
    t.Errorf("Expected: %v, Got: %v, %t", expected["aabck"], actual["aabck"], reflect.DeepEqual(expected["aabck"], actual["aabck"]))
    t.Errorf("Expected: %v, Got: %v, %t", expected["aabcsu"], actual["aabcsu"], reflect.DeepEqual(expected["aabcsu"], actual["aabcsu"]))
    t.Errorf("Expected: %v, Got: %v, %t", expected["aabcessu"], actual["aabcessu"], reflect.DeepEqual(expected["aabcessu"], actual["aabcessu"]))
    t.Errorf("Expected: %v, Got: %v, %t", expected["aabft"], actual["aabft"], reflect.DeepEqual(expected["aabft"], actual["aabft"]))
    t.Errorf("Expected: %v, Got: %v, %t", expected["aabelno"], actual["aabelno"], reflect.DeepEqual(expected["aabelno"], actual["aabelno"]))
    t.Errorf("Length of expected: %v, length of actual: %v", len(expected), len(actual))
}
}

下面是错误消息

--- FAIL: TestAnagramDictFromWordSlice (0.00s)
main_test.go:26: 
    Expected map[aabci:[abaci] aabck:[aback] aabcsu:[abacus cusaba] aabcessu:[abacuses] aabft:[abaft fabat] aabelno:[abalone]], 
    got map[aabci:[abaci] aabck:[aback] aabcsu:[abacus cusaba] aabcessu:[abacuses] aabft:[abaft fabat] aabelno:[abalone]]
main_test.go:27: Expected: [abaci], Got: [abaci], true
main_test.go:28: Expected: [aback], Got: [aback], true
main_test.go:29: Expected: [abacus cusaba], Got: [abacus cusaba], true
main_test.go:30: Expected: [abacuses], Got: [abacuses], true
main_test.go:31: Expected: [abaft fabat], Got: [abaft fabat], true
main_test.go:32: Expected: [abalone], Got: [abalone], true
main_test.go:33: Length of expected: 6, length of actual: 6

你能做一个演示这个行为的例子吗。如图所示运行代码有效:您可以使用-v标志运行测试吗?我试着将它与-v标志一起运行,但一切都通过了mac上的go?1.7.3版的哪个版本。这很有效:你能做一个演示该行为的测试吗。如图所示运行代码有效:您可以使用-v标志运行测试吗?我已经尝试将其与-v标志一起按原样运行,但所有内容都已通过mac上的go?1.7.3版的哪个版本。这只适用于:
--- FAIL: TestAnagramDictFromWordSlice (0.00s)
main_test.go:26: 
    Expected map[aabci:[abaci] aabck:[aback] aabcsu:[abacus cusaba] aabcessu:[abacuses] aabft:[abaft fabat] aabelno:[abalone]], 
    got map[aabci:[abaci] aabck:[aback] aabcsu:[abacus cusaba] aabcessu:[abacuses] aabft:[abaft fabat] aabelno:[abalone]]
main_test.go:27: Expected: [abaci], Got: [abaci], true
main_test.go:28: Expected: [aback], Got: [aback], true
main_test.go:29: Expected: [abacus cusaba], Got: [abacus cusaba], true
main_test.go:30: Expected: [abacuses], Got: [abacuses], true
main_test.go:31: Expected: [abaft fabat], Got: [abaft fabat], true
main_test.go:32: Expected: [abalone], Got: [abalone], true
main_test.go:33: Length of expected: 6, length of actual: 6