1 回答

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊
那些是slices,而不是arrays,你的第一個(gè) slice 有 2 個(gè)元素,第二個(gè) slice 有 3 個(gè)元素,那么它們?cè)趺纯赡芟嗟龋?/p>
嘗試像這樣打印它們:
fmt.Printf("%d %q\n", len(x), x)
fmt.Printf("%d %q\n", len(y), y)
輸出:
2 ["hello world" "me"]
3 ["hello" "world" "me"]
fmt.Prinln()將打印傳遞切片的所有值,在元素之間打印一個(gè)空格。并且 of 的第一個(gè)元素x是一個(gè)字符串,它等于前 2 個(gè)y用空格連接的元素,這就是為什么您會(huì)看到切片的打印內(nèi)容相同。
當(dāng)您使用相同的 3 個(gè)字符串用反引號(hào)初始化第一個(gè)切片時(shí),它們將相等:
x = []string{`hello`, `world`, "me"}
y = []string{"hello", "world", "me"}
fmt.Printf("%d %q\n", len(x), x)
fmt.Printf("%d %q\n", len(y), y)
fmt.Println(reflect.DeepEqual(x, y))
輸出:
3 ["hello" "world" "me"]
3 ["hello" "world" "me"]
true
- 1 回答
- 0 關(guān)注
- 134 瀏覽
添加回答
舉報(bào)