第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

Go 中的持久化程序

Go 中的持久化程序

Go
猛跑小豬 2021-07-02 14:03:30
我正在嘗試學(xué)習(xí)圍棋,我想我會從一個我想做一段時間的項目開始(但它似乎太“繁瑣”而無法打擾)。基本思想是我有一個程序可以在 stdin/stdout 上與用戶交互,我想編寫一個新程序,該程序以相同的方式與程序交互(就好像它是一個運行程序的人一樣)?,F(xiàn)在這里的程序很簡單,因為它是同步的:你輸入一個命令,得到一些輸出,然后它就坐在那里等待下一批輸入。這看起來并不難,但我很難讓這個 I/O 框架正常工作。package mainimport (    "os/exec"    "time"    "bufio"    "math/rand"    "fmt"    "strings")func main() {    cmd := exec.Command("e")    // A simple program that echos input until it becomes "exit"    progin, err := cmd.StdoutPipe()    if err != nil {        fmt.Println("Trouble with e's stdout")        panic(err)    }    err = cmd.Start()    if err != nil {        fmt.Println("Trouble starting e")        panic(err)    }    r := rand.New(rand.NewSource(99))    buf := bufio.NewReader(progin)    for {        // Write stuff        var toProg string        if (r.Float64() < .1) {            toProg = "exit"        } else {            toProg = fmt.Sprintf("%d", r.Int)        }        fmt.Println("Printing: ", toProg)        cmd.Stdin = strings.NewReader(toProg + "\n")        // Read stuff        time.Sleep(500 * time.Millisecond) // give the program time to generate output        input, err := buf.ReadString('\n')        if err != nil {            fmt.Println("I did *not* like that: ", input)            panic(err)        }        fmt.Println("Received: ", input)    }}有接班人嗎?
查看完整描述

2 回答

?
慕仙森

TA貢獻1827條經(jīng)驗 獲得超8個贊

你是在重新發(fā)明輪子,你想做的一切都可以由fmt包處理,所以只需使用它并在需要的地方添加額外的東西,比如隨機數(shù)檢查器。


以下是如何輕松實現(xiàn)此目標的示例:http : //play.golang.org/p/b9GnovSRFj


快速瀏覽一下,該策略的主要功能:


var s string

_, err := fmt.Scanf("%s", &s)

if err != nil {

    log.Fatal(err)

}

fmt.Println(s)

請注意,由于權(quán)限問題,它不會在操場上運行,但如果您在本地運行它,它應(yīng)該可以正常工作。


查看完整回答
反對 回復(fù) 2021-07-05
  • 2 回答
  • 0 關(guān)注
  • 258 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號