go 判断通道有没有数据
判断通道是否有数据,无数据退出
package main
import (
"bufio"
"fmt"
"io"
"os"
)
func FileRead(filename string, filesChan chan string) {
defer close(filesChan) // 处理完退出通道
f, err := os.Open(filename)
if err != nil {
return
}
reader := bufio.NewReader(f)
for {
str, err := reader.ReadString('\n')
if err == io.EOF {
break
} else {
filesChan <- str
}
}
}
func main() {
filename := "D:\\code\\goland\\test\\main.go"
c := make(chan string)
go FileRead(filename, c)
for {
if data, ok := <-c; ok { // ok判断通道有没有关闭,关闭后ok值为false
fmt.Print(data)
} else {
break
}
}
}