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就明白了,没看懂。



交互式爱情
浏览 193回答 3
3回答

波斯汪

从有关 Printing 的文档中:对于每个类似 Printf 的函数,还有一个不采用格式的 Print 函数,相当于对每个操作数说 %v。另一个变体 Println 在操作数之间插入空格并附加一个换行符。所以 Printf 采用格式字符串,让您告诉编译器输出变量的格式,并将它们与其他信息一起放入字符串中,而 Print 只是按原样输出变量。通常您更喜欢使用 fmt.Printf,除非您只是在调试并希望快速输出一些变量。在您的示例中,您错误地将要打印的字符串作为格式字符串发送,这将起作用,但不是预期用途。如果您只想以默认格式打印一个变量,则可以使用 Print。

萧十郎

Printf 方法接受格式化字符串,该字符串中的代码如“%s”和“%d”指示值的插入点。然后将这些值作为参数传递。例子:package mainimport ("fmt"      )var(a = 654b = falsec   = 2.651d  = 4 + 1ie   = "Australia"f = 15.2 * 4525.321)func main(){    fmt.Printf("d for Integer: %d\n", a)fmt.Printf("6d for Integer: %6d\n", a)fmt.Printf("t for Boolean: %t\n", b)fmt.Printf("g for Float: %g\n", c)fmt.Printf("e for Scientific Notation: %e\n", d)fmt.Printf("E for Scientific Notation: %E\n", d)fmt.Printf("s for String: %s\n", e)fmt.Printf("G for Complex: %G\n", f)fmt.Printf("15s String: %15s\n", e)fmt.Printf("-10s String: %-10s\n",e)t:= fmt.Sprintf("Print from right: %[3]d %[2]d %[1]d\n", 11, 22, 33)fmt.Println(t)  }

犯罪嫌疑人X

根据文档打印:将打印数字变量,并且不会在末尾包含换行符。Printf:不会打印数字变量,也不会在末尾包含换行符。Printf用于打印格式化字符串。它可以导致更具可读性的打印。
打开App,查看更多内容
随时随地看视频慕课网APP