2016-12-30 137 views
-2

這裏是我的代碼: 包主要爲什麼使用`log.Println`和`fmt.Println`時輸出順序改變了?

import "log" 
import "fmt" 

func main() { 
    var a string = "initail" 
    log.Println(a) 
    var b, c int = 1, 2 
    fmt.Println(b, c) 
} 

輸出是:

1 2 
2016/12/30 14:22:58 initail 

,所以我不明白爲什麼輸出的順序? 爲什麼log.Printlnfmt.Println慢?在其印刷行爲方面那些之間

+0

看起來非常特殊的情況,主要是由於在bufferig過程結束ABD得到刷新。這裏是一個鏈接https://play.golang.org/p/xWFTHKaKzR –

+0

無法打開你的鏈接,它是禁止的。 – BlackMamba

+0

我已經在下面發佈的anwer中共享相同的鏈接。檢查並接受,如果這可以解決您的問題 –

回答

3

唯一的區別是

  • log.Println寫入Stderr
  • fmt.Println寫入Stdout

兩者都沒有緩衝。所以StdOutStdError之前出現的事實是特定於您的終端或環境的。

這裏是一個遊戲環節https://play.golang.org/p/0cukg_a9GR

+0

@blackmamba如果它幫助你,請接受答案 –

相關問題