Golang Go语言中请问 fmt.Fprint(&b, "Hello World") 的值 b 为什么需要加& ???

发布于 1周前 作者 sinazl 来自 Go语言

Golang Go语言中请问 fmt.Fprint(&b, “Hello World”) 的值 b 为什么需要加& ???

看到一段代码 :

func main() {
	var b bytes.Buffer
	fmt.Fprint(&b, "Hello World")
	var w io.Writer
	w = &b
	fmt.Println(w)
}

跟随到 fmt.Fprint

type Writer interface {
	Write(p []byte) (n int, err error)
}

func Fprint(w io.Writer, a …interface{}) (n int, err error) { p := newPrinter() p.doPrint(a) n, err = w.Write(p.buf) p.free() return }

为什么这里需要传指针?

不是有 * 符号的时候才需要指针吗?有点懵.


更多关于Golang Go语言中请问 fmt.Fprint(&b, "Hello World") 的值 b 为什么需要加& ???的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

回到顶部