1. 程式人生 > 程式設計 >Go Println和Printf的區別詳解

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

之間存在空格

換行

Print

不存在空格

不換行

Printf

格式化輸出

不換行

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。如有錯誤或未考慮完全的地方,望不吝賜教。