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

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

來(lái)自 []byte 或文件的 io.WriteSeeker 和 io.ReadSeeker

來(lái)自 []byte 或文件的 io.WriteSeeker 和 io.ReadSeeker

Go
阿晨1998 2021-07-07 13:05:49
我有一個(gè)名為“DoSomething”的方法。DoSomething 會(huì)取二進(jìn)制源數(shù)據(jù)對(duì)其進(jìn)行操作,并寫(xiě)出二進(jìn)制數(shù)據(jù)。DoSomething 需要足夠通用以處理源和目標(biāo)的 []byte 數(shù)組或文件句柄。為了實(shí)現(xiàn)這一點(diǎn),我試圖像這樣聲明方法:func DoSomething(source *io.ReadSeeker, destination *io.WriteSeeker)我已經(jīng)實(shí)現(xiàn)了 ReadSeeker 和 WriteSeeker 來(lái)處理緩沖區(qū),使用我自己自定義的、必需的方法(如果有一種方法可以自動(dòng)完成這個(gè),我也很想聽(tīng)聽(tīng))。不幸的是,我似乎無(wú)法弄清楚如何從文件句柄創(chuàng)建 io.ReadSeeker 或 io.WriteSeeker。我相當(dāng)確定必須有一些預(yù)先處理好的方法,而不必手動(dòng)實(shí)現(xiàn)它們。這可能嗎?
查看完整描述

2 回答

?
倚天杖

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

一個(gè)文件已經(jīng)實(shí)現(xiàn)了這兩個(gè)。你可以這樣做:


package main


import (

   "fmt"

   "io"

   "os"

)


func main() {

   f, err := os.Open("test.txt")

   if err != nil {

     fmt.Println(err)

   }

   defer f.Close()

   f2, err := os.Create("test2.txt")

   if err != nil {

      fmt.Println(err)

   }

   defer f2.Close()

   DoSomething(f, f2) 

}


func DoSomething(source io.ReadSeeker, destination io.WriteSeeker) {

   io.Copy(destination, source)

}

此外,您不需要將指針傳遞給接口,這使得處理它們變得更加容易。


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

添加回答

舉報(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)