Go Println和Printf的區別詳解
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") }
輸出:
/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") f.Print("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 |
之間存在空格 |
換行 |
|
不存在空格 |
不換行 |
Printf |
格式化輸出 |
不換行 |
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。如有錯誤或未考慮完全的地方,望不吝賜教。