我是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来理解,但我没有理解它。
4条答案
按热度按时间qij5mzcb1#
关于打印的文档:
对于每一个类似于Printf的函数,还有一个不接受格式的Print函数,相当于对每个操作数都说%v。另一个变体Println在操作数之间插入空格并追加一个换行符。
因此,Printf接受一个格式字符串,让您告诉编译器以什么格式输出变量,并将它们与其他信息一起放入字符串中,而Print只是按原样输出变量。一般来说,您更喜欢使用fmt.Printf,除非您只是在调试并希望快速输出某些变量。
在您的示例中,您错误地将想要打印的字符串作为格式字符串发送,这可以工作,但不是预期的用途。如果你只想以默认格式打印一个变量,可以使用Print。
fwzugrvs2#
Printf方法接受一个格式化的字符串,该字符串中的代码如“%s”和“%d”指示值的插入点。然后,这些值作为参数传递。
示例:
ecfdbz9o3#
根据文件
**打印:**打印数字变量,末尾不换行。
**Printf:**不会打印数字变量,也不会在末尾包含换行符。
Printf用于打印格式化字符串。而且它可以导致更可读的打印。
有关更多详细信息,请访问此tutorial。
y0u0uwnf4#
Go**的
fmt
包提供的Print
和Printf
函数都允许我们将字符串输出到终端。为了回答你关于两者之间的区别的问题,
Printf
允许你打印一个带占位符的格式化字符串,你可以用所需的值填充它,而Print
只打印用空格分隔的参数。当可读性很重要时,应该使用
Printf
,因为它可以让您更好地控制所提供的输出。否则,使用Print
。