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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在 Go 中為 IO 操作添加幫助程序是不是不好的做法?

在 Go 中為 IO 操作添加幫助程序是不是不好的做法?

Go
精慕HU 2022-10-04 20:04:45
我來(lái)自C#背景,并使用IO方法,如和來(lái)自命名空間。我有點(diǎn)驚訝地發(fā)現(xiàn)Go沒(méi)有這些IO操作的便利功能。為了避免代碼重復(fù),我編寫(xiě)了以下幫助程序。有什么理由不這樣做嗎?File.ReadAllLinesFile.WriteAllLinesSystem.IO// WriteBytes writes the passed in bytes to the specified file. Before writing,// if the file already exists, deletes all of its content; otherwise, creates// the file.func WriteBytes(filepath string, bytes []byte) (err error) {    file, err := os.Create(filepath)    if err != nil {        return err    }    defer closeWithErrorPropagation(file, &err)    _, err = file.Write(bytes)    if err != nil {        return err    }    return err}// WriteString writes the passed in sting to the specified file. Before writing,// if the file already exists, deletes all of its content; otherwise, creates// the file.func WriteString(filepath string, text string) (err error) {    file, err := os.Create(filepath)    if err != nil {        return err    }    defer closeWithErrorPropagation(file, &err)    _, err = file.WriteString(text)    if err != nil {        return err    }    return err}// WriteLines writes the passed in lines to the specified file. Before writing,// if the file already exists, deletes all of its content; otherwise, creates// the file.func WriteLines(filepath string, lines []string) (err error) {    file, err := os.Create(filepath)    if err != nil {        return err    }    defer closeWithErrorPropagation(file, &err)    for _, line := range lines {        _, err := file.WriteString(fmt.Sprintln(line))        if err != nil {            return err        }    }    return err}func closeWithErrorPropagation(c io.Closer, err *error) {    if closerErr := c.Close(); closerErr != nil && *err == nil { // Only propagate the closer error if there isn't already an earlier error.        *err = closerErr    }}
查看完整描述

1 回答

?
ABOUTYOU

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

操作系統(tǒng)。寫(xiě)文件可以處理 和 函數(shù)的等效功能:WriteBytesWriteString


// func WriteBytes(filepath string, bytes []byte) (err error)


err = os.WriteFile("testdata/hello", []byte("Hello, Gophers!"), 0666)



// func WriteString(filepath string, text string) (err error)


text := "Hello, Gophers!"

err = os.WriteFile("testdata/hello", []byte(text), 0666)

并與字符串組合。加盟可以處理:WriteLines


//func WriteLines(filepath string, lines []string) (err error)


lines := []string{"hello", "gophers!"}

err = os.WriteFile("testdata/hello", []byte(strings.Join(lines, "\n")), 0666)


查看完整回答
反對(duì) 回復(fù) 2022-10-04
  • 1 回答
  • 0 關(guān)注
  • 100 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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