2 回答

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊
使用顯示數(shù)據(jù)結(jié)構(gòu)的格式動(dòng)詞,例如%#v. 在這種情況下%q也很有效,因?yàn)樵碱愋投际亲址?/p>
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"}

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊
您可以使用:
func format(s1, s2 []string) string {
if reflect.DeepEqual(s1, s2) {
return "%v\n"
}
return "%q\n"
}
像這個(gè)工作樣本(The Go Playground):
package main
import (
"fmt"
"reflect"
)
func main() {
s1, s2 := []string{"a", "b", "c"}, []string{"a b", "c"}
frmat := format(s1, s2)
fmt.Printf(frmat, s1) // ["a" "b" "c"]
fmt.Printf(frmat, s2) // ["a b" "c"]
s2 = []string{"a", "b", "c"}
frmat = format(s1, s2)
fmt.Printf(frmat, s1) // ["a" "b" "c"]
fmt.Printf(frmat, s2) // ["a b" "c"]
}
func format(s1, s2 []string) string {
if reflect.DeepEqual(s1, s2) {
return "%v\n"
}
return "%q\n"
}
輸出:
["a" "b" "c"]
["a b" "c"]
[a b c]
[a b c]
- 2 回答
- 0 關(guān)注
- 449 瀏覽
添加回答
舉報(bào)