我是 Golang 的初学者。我做了一个关于Go通道的练习。我在主 goroutine 中打开并读取文件中的数据,然后将数据传递给第二个 goroutine 以保存到带有通道的另一个文件中。我的代码是流程
func main() {
f, err := os.OpenFile("test.go", os.O_RDONLY, 0600)
ch := make(chan []byte)
buf := make([]byte, 10)
bytes_len, err := f.Read(buf)
fmt.Println("ReadLen:", bytes_len)
if err != nil {
fmt.Println("Error: ", err)
return
}
go WriteFile(ch)
for {
ch<-buf
bytes_len, err = f.Read(buf)
if err != nil {
fmt.Println("error=", err)
break
}
if bytes_len < 10 {
ch<-buf[:bytes_len]
fmt.Println("Finished!")
break
}
}
time.Sleep(1e9)
f.Close()
}
func WriteFile(ch <-chan []byte) {
fmt.Println("* begin!")
f, err …Run Code Online (Sandbox Code Playgroud)