亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何停止 fmt.print() 打印到輸出?

如何停止 fmt.print() 打印到輸出?

Go
智慧大石 2023-07-31 17:03:19
fmt.print()我正在使用一個代碼中包含一些 s 的包,我想阻止它們打印到輸出。我想在不更改包內代碼的情況下抑制它們,而只需在我的main.go.是否可以強制fmt不將打印記錄到輸出?
查看完整描述

1 回答

?
郎朗坤

TA貢獻1921條經驗 獲得超9個贊

是的,只需轉移os.Stdout和/或os.Stderr例如:


package main


import (

    "fmt"

    "os"

)


func main() {

    temp := os.Stdout

    os.Stdout = nil    // turn it off

    packageFunctions() // call you package functions here

    os.Stdout = temp   // restore it

    fmt.Println("Bye")

}

func packageFunctions() {

    fmt.Println("Hi")

}


輸出:


Bye

您可以將其轉移到臨時文件:


package main


import (

    "fmt"

    "io/ioutil"

    "log"

    "os"

)


func main() {

    tmpfile, err := ioutil.TempFile("", "example")

    if err != nil {

        log.Fatal(err)

    }

    fmt.Println(tmpfile.Name())

    // defer os.Remove(tmpfile.Name()) // clean up


    temp := os.Stdout

    os.Stdout = tmpfile

    packageFunctions() // call you package functions here


    if err := tmpfile.Close(); err != nil {

        log.Fatal(err)

    }


    os.Stdout = temp // restore it

    fmt.Println("Bye")

}

func packageFunctions() {

    fmt.Println("Hi")

}


查看完整回答
反對 回復 2023-07-31
  • 1 回答
  • 0 關注
  • 132 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號