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

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

golang 無限循環問題與 docker 運行

golang 無限循環問題與 docker 運行

Go
慕村9548890 2022-08-15 16:21:53
我試圖做簡單的無限循環任務。它工作正常,無需使用 docker。但是當我使用docker時,它只無限執行for循環的other部分。實際上可能有什么問題?Docker 在無限 for 循環方面有問題嗎?我的main.go文件如下所示。package main import ("bufio""fmt""os" )func main() { fmt.Println("Hello, World!.....") for {    fmt.Print("-> ")    var i int    fmt.Scan(&i)    if i == 1 {        fmt.Println("Hello, World! 1")    } else if i == 2 {        fmt.Println("Hello, World! 2")    } else if i == 3 {        fmt.Println("Hello, World! 3")    } else if i == 4 {        fmt.Println("Hello, World! 4")    } else if i == 5 {        fmt.Println("Hello, World! 5")    } else {        fmt.Println("Hello, World! else")            } }}我也嘗試了這些鏈接。在golang中閱讀行 我如何在Golang中打破無限循環但仍然沒有用處。從昨天開始,我正在努力解決這個問題。docker 文件如下所示:FROM golang:1.12.0-alpine3.9RUN mkdir /appADD . /appWORKDIR /appRUN go build -o main .CMD ["go","run","/app/main.go"]我嘗試使用 docker build -t hello 來構建 docker,并使用docker run hello與docker run hello使用控制臺執行,無需 Dockergo run main.go
查看完整描述

2 回答

?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

無限循環是因為您的 go 程序正在等待輸入,并且您沒有在交互模式下啟動容器。

要使其正常工作,您需要使用此命令(請注意該選項):-it

docker container run --rm --name hello -it hello



查看完整回答
反對 回復 2022-08-15
?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

掃描返回錯誤。很可能沒有讀取任何數據并且是(因為這是 的零值)。i0int


在沒有數據的情況下將代碼更改為死機:


var i int

_, err := fmt.Scan(&i)

if err != nil {

    panic(err)

}

圍棋游樂場的行為方式與此類似。


查看完整回答
反對 回復 2022-08-15
  • 2 回答
  • 0 關注
  • 132 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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