Golang:以独特的方式打印字符串数组

Ted*_*Ted 2 string format go slice

我希望有一个功能func format(s []string) string,使得两个串片s1s2,如果reflect.DeepEqual(s1, s2) == false,然后format(s1) != format(s2).

如果我只是使用fmt.Sprint,切片["a", "b", "c"]["a b", "c"]所有打印[a b c],这是不可取的; 并且还存在string([]byte('4', 0, '2'))具有相同表示的问题"42".

Jim*_*imB 8

使用显示数据结构的格式动词,例如%#v.在这种情况下%q效果也很好,因为原始类型都是字符串.

fmt.Printf("%#v\n", []string{"a", "b", "c"})
fmt.Printf("%#v\n", []string{"a b", "c"})

// prints
// []string{"a", "b", "c"}
// []string{"a b", "c"}
Run Code Online (Sandbox Code Playgroud)