2016-12-30 13 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

は、プロセスの終了時にフラッシュさばかりABDをbufferigする主に起因する非常に特殊なケース、のように見えるです。ここにリンクhttps://play.golang.org/p/xWFTHKaKzR –

+0

あなたのリンクを開くことができません、それは禁止されています。 – BlackMamba

+0

私は以下に掲載されたanwer iで同じリンクを共有しました。それがあなたの問題を解決するかどうかを確認して受け入れます。 –

答えて

3

唯一の違いは、Stdout

にどちらがバッファリングされていない書き込み

  • log.PrintlnStderr
  • fmt.Printlnへの書き込みです。したがって、StdOutStdErrorの前に来たことは、ご使用の端末または環境に固有です。ここで

    は、プレイリンクhttps://play.golang.org/p/0cukg_a9GR

+0

@blackmambaそれがあなたを助けたら答えを受け入れてください –

関連する問題