Go中的Println vs Printf vs Print

ann*_*123 0 go

我来自JS国家,主要使用过类似console.logconsole.error

现在,我正在遵循的教程中,那里的讲师做了这样的事情

package main

import "fmt"



func main() {

    var FirstName = "Varun"
    var lastName = "bindal"

    fmt.Println(FirstName, lastName)
    fmt.Printf("%T", FirstName)
}
Run Code Online (Sandbox Code Playgroud)

在这里,他使用PrintF而不是Println来检查类型。最初,我认为println在新行中打印,所以我更改了

fmt.Printf("%T", FirstName)
Run Code Online (Sandbox Code Playgroud)

fmt.Println("%T", FirstName)
Run Code Online (Sandbox Code Playgroud)

但这记录下来%T Varun而不是告诉我类型。

我去了他们的网站以找出答案,或者无法理解它,或者无法找到它。

谷歌搜索使我知道Go中有三种记录/打印方式

  1. 版画
  2. 印刷品
  3. 打印

那么,如果有人打电话告诉他们三个之间的区别?

rob*_*ert 16

正如 Nate 所说:fmt.Printfmt.Println打印原始字符串(fmt.Println附加换行符)

fmt.Printf不会打印新行,您必须自己将其添加到末尾\n

fmt.Printf工作方式很简单,您提供一个包含某些符号的字符串,其他参数替换这些符号。例如:

fmt.Printf("%s is cool", "Bob") 
Run Code Online (Sandbox Code Playgroud)

在这种情况下,%s代表一个字符串。在您的情况下,%T打印变量的类型。


Nat*_*ner 8

  • Printf -“打印格式化程序”,此功能可让您将数字,变量和字符串格式化为您提供的第一个字符串参数
  • Println-“打印行”这不能格式化任何内容,它只需要输入一个字符串,然后打印并附加换行符\n
  • Print-“打印”相同的内容,Println()但是不会附加换行符

  • `Println` 还在参数之间插入空格。`Print` 仅在任一参数 * 不是 * 字符串时在参数之间插入空格。 (3认同)
  • 您的意思是“Println”与“Print()”相同吗?只有 `Printf()` 会替换格式,其他函数只是依次打印给定的参数(是否插入空格以及是否插入换行符) (2认同)