go - Go 中的 Print 和 Printf 有何不同?
问题描述
我是 Go 新手,了解简单的语法和功能。在这里,我对 Print 和 Printf 函数感到困惑。那些函数的输出是相似的,那么这两个函数有什么区别呢?
package main
import (
"fmt"
"bufio"
"os"
)
func main(){
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter Text: ")
str, _ := reader.ReadString('\n')
fmt.Printf(str)
fmt.Print(str)
}
我读了https://golang.org/pkg/fmt/#Print来理解,但我不明白。
解决方案
从有关打印的文档中:
对于每个类似 Printf 的函数,还有一个不带格式的 Print 函数,相当于对每个操作数说 %v。另一种变体 Println 在操作数之间插入空格并附加一个换行符。
因此 Printf 采用格式字符串,让您告诉编译器输出变量的格式并将它们与其他信息一起放入字符串中,而 Print 只是按原样输出变量。通常您更喜欢使用 fmt.Printf,除非您只是在调试并且想要快速输出一些变量。
在您的示例中,您错误地将要打印的字符串作为格式字符串发送,这将起作用,但不是预期用途。如果您只想以默认格式打印一个变量,则可以使用 Print。
推荐阅读
- android - 响应式图像 - 如何?
- python - 使用pandas包在python中组合来自多个excel文件的数据
- sql-server - SP_EXECUTESQL 中的 SQL 注入
- dataset - 在 KITTI 数据集中,哪个序列的初始速度为 0?
- flutter - Flutter GestureDetector 根本不工作
- angular - 剑道树视图的复选框样式问题
- swift - 丢弃 UITableView 内的更改不会反映在 UITextView 不可见但处于活动状态的单元格上
- react-bootstrap - 如何在图像的 src 路径中集成变量?
- python - 如何为 micropython 构建 sphinx 文档
- javascript - JSDOM - 将文档设置为全局值