Print和Printf在Go中有什么不同?

Print和Printf在Go中有什么不同?,go,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.P

我是新手,了解简单的语法和函数。这里我混淆了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)
}
我读书是为了理解,但我不理解。

来自:

对于每个类似Printf的函数,还有一个Print函数不采用格式,相当于对每个操作数说%v。另一个变量Println在操作数之间插入空格并追加换行符

因此Printf采用一个格式字符串,让您告诉编译器输出变量的格式,并将它们与其他信息一起放入字符串中,而Print只按原样输出变量。通常,您更喜欢使用fmt.Printf,除非您只是在调试并希望快速输出一些变量


在您的示例中,您错误地将要打印的字符串作为格式字符串发送,这将起作用,但不是预期用途。如果只想以默认格式打印一个变量,可以使用print

Printf方法接受格式化字符串,该字符串中的代码(如“%s”和“%d”)表示值的插入点。然后将这些值作为参数传递

例如:

package main

import (
"fmt"      
)

var(
a = 654
b = false
c   = 2.651
d  = 4 + 1i
e   = "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)  
}
根据文件

打印:将打印数字变量,并且不会在末尾包含换行符

Printf:不会打印数字变量,也不会在末尾包含换行符

Printf用于打印格式化字符串。而且它可以导致更可读的打印


要了解更多详细信息,请访问此网站。

那么只打印怎么样?是的,这更有意义:)