猿问

使用 Printf 格式正确打印切片

我正在尝试打印切片。文档说要与第 0 个元素的地址一起使用。这只给出了切片的地址。 用十六进制打印切片,我找不到阻止它的方法。fmt%p%q


在 go 中打印切片时要使用的正确动词是什么?(我目前只使用%v,它的工作原理)


func main() {

    slice := []int{0,1,2,3}

    fmt.Printf("slice: %p\n",slice)

}

//output is "slice: 0xc00007a000" or other memory address

//using &slice[0] is no different. Using slice[0] gives a type error


哔哔one
浏览 86回答 1
1回答

慕的地10843

%v通常,这是一个不错的选择,但您也可以对切片元素使用说明符:package mainimport "fmt"func main() {   {      s := []int{10, 20, 30, 40}      fmt.Printf("%d\n", s) // [10 20 30 40]   }   {      s := []byte{'e', 'a', 's', 't'}      fmt.Printf("%c\n", s) // [e a s t]      fmt.Printf("%s\n", s) // east      fmt.Printf("%q\n", s) // "east"   }   {      s := []string{"east", "west"}      fmt.Printf("%s\n", s) // [east west]      fmt.Printf("%q\n", s) // ["east" "west"]   }}
随时随地看视频慕课网APP

相关分类

Go
我要回答