Go Println和Printf的区别详解
Println和Printf都是fmt包中公共方法;在需要打印信息时常用的函数,那么二函数有什么区别呢?
附上代码
packagemain import( "time" "fmt" ) const( Man=1 Female=2 ) funcmain(){ timer:=time.Now().Unix() if(timer%Female==0){ fmt.Println("%disFemale",timer) fmt.Printf("%disFemale",timer) }else{ fmt.Println("%disMan",timer) fmt.Printf("%disMan",timer) } }
运行结果:
%disMan1529049077//println输出结果
1529049077isMan//printf输出结果
结果可知
Printf:可打印出格式化的字符串,Println不行;
总结:
println会根据你输入格式原样输出,printf需要格式化输出并带输出格式;
补充:Go基础-Go中的Println和Print和Printf之间的区别
1、Println
在Println中进行输出时:
packagemain import( f"fmt" ) funcmain(){ f.Println("hello","world","hello","world") f.Println("hello","world","hello","world") }
输出:
/private/var/folders/yt/24f_qg2n6879g2fg85994jf40000gn/T/___go_build_helloworld_go#gosetup
helloworldhelloworld
helloworldhelloworld
Processfinishedwithexitcode0
在同一输出函数中输出多项的时候,hello和world中是存在空格的
在不同输出函数之间会换行
2、Print
在Print中进行输出时:
packagemain importf"fmt" funcmain(){ 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
Processfinishedwithexitcode0
在同一个输出函数中处处多项的时候,hello和world中不存在空格
在不同输出函数之间,不换行
3、Printf
在Printf进行输出时:
packagemain importf"fmt" funcmain(){ 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
Processfinishedwithexitcode0
可以对参数进行格式化输出,在不同输出函数中是不换行的。
总结:
函数 |
同函数输出多项 |
不同函数输出 |
Println |
之间存在空格 |
换行 |
|
不存在空格 |
不换行 |
Printf |
格式化输出 |
不换行 |
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。