Go Println和Printf的区别详解

(编辑:jimmy 日期: 2025/1/16 浏览:2)

Println 和Printf 都是fmt包中公共方法;在需要打印信息时常用的函数,那么二函数有什么区别呢?

附上代码

package main
import (
 "time"
 "fmt"
)
const (
 Man = 1
 Female = 2
)
func main(){
 timer := time.Now().Unix()
 if(timer % Female == 0){
  fmt.Println("%d is Female", timer)
  fmt.Printf("%d is Female", timer)
 }else{
  fmt.Println("%d is Man", timer)
  fmt.Printf("%d is Man", timer)
 }
}

运行结果:

%d is Man 1529049077 // println输出结果

1529049077 is Man // printf输出结果

结果可知

Printf : 可打印出格式化的字符串,Println不行;

总结:

println会根据你输入格式原样输出,printf需要格式化输出并带输出格式;

补充:Go基础-Go中的Println和Print和Printf之间的区别

1、Println

在Println中进行输出时:

package main 
import ( 
 f "fmt" 
) 
func main(){ 
 f.Println("hello","world","hello","world") 
 f.Println("hello","world","hello","world") 
}

输出:

/private/var/folders/yt/24f_qg2n6879g2fg85994jf40000gn/T/___go_build_helloworld_go #gosetup

hello world hello world

hello world hello world

Process finished with exit code 0

在同一输出函数中输出多项的时候,hello和world中是存在空格的

在不同输出函数之间会换行

2、Print

在Print中进行输出时:

package main 
import f "fmt" 
func main(){ 
 f.Print("hello","world","hello","world") 
 f.Print("hello","world","hello","world") 
}

输出:

/private/var/folders/yt/24f_qg2n6879g2fg85994jf40000gn/T/___go_build_helloworld_go #gosetup

helloworldhelloworldhelloworldhelloworld

Process finished with exit code 0

在同一个输出函数中处处多项的时候,hello和world中不存在空格

在不同输出函数之间,不换行

3、Printf

在Printf进行输出时:

package main 
import f "fmt" 
func main(){ 
 a := 10 
 b := 20 
 c := "hello" 
 f.Printf("a=%d,b=%d",a,b) 
 f.Printf("c=%s",c) 
}

输出:

/private/var/folders/yt/24f_qg2n6879g2fg85994jf40000gn/T/___go_build_helloworld_go #gosetup

a=10,b=20c=hello

Process finished with exit code 0

可以对参数进行格式化输出,在不同输出函数中是不换行的。

总结:

函数

同函数输出多项

不同函数输出

Println

之间存在空格

换行

Print

不存在空格

不换行

Printf

格式化输出

不换行

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。

一句话新闻
高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。