Golang 中为什么要这样命名“Fprint”? [已关闭]

问题描述 投票:0回答:1

举个例子,如果有文件描述符,您可以向套接字写入响应。就像写入文件一样(用 C 语言)。当我使用

http
编写
fmt.Fprint
回复时,遇到了这个问题。像这样:

func handle(w *http.ResponseWriter, r *http.Request) {
  fmt.Fprint(w, "Hello curious world :)")
}

或者这是基于我可能错过的完全不同的东西。预先感谢您。

go
1个回答
-3
投票

您可以查看

fmt
包的文档,了解各种“
*print*
”函数的命名背后的模式:https://pkg.go.dev/fmt

图案是:

[|F|S]print[|f|ln]
  • 无前缀:输出到标准输出。
  • 以“F”开头:输出到
    io.Writer
    接口。
  • 以“S”开头:输出到字符串。
  • 无后缀:打印传递的参数(使用 Stringer 接口)。
  • 以“f”结尾:使用格式字符串。
  • 以“ln”结尾:在输出末尾附加换行符。

所以,回到你原来的问题,“F”前缀的原因(正如其他人已经指出的)可能是传统。 C 和其他语言长期以来都有

fprint(f)
函数,因此 Go 接管了该命名,而不是使用例如
Wprint[|f|ln]
(这会更合适,因为它使用
Writer
界面)。

© www.soinside.com 2019 - 2024. All rights reserved.