I'm trying to understand difference between two file-reading cases.
Code below works fine. We reading file line-by-line to the variable:
reader := bufio.NewReader(file)
var line string
for err != io.EOF {
line, err = reader.ReadString('\n')
log.Println(line)
}
But if I want to init (using reader) in for scope reader will infinitely read only first line of code:
reader := bufio.NewReader(file)
var line string
for line, err = reader.ReadString('\n'); err != io.EOF; {
log.Println(line)
}
Please, explain me why it happens? Thanks
Move it from initialization (Which runs only once) to post-statement. Change it to
for line, err = reader.ReadString('\n'); err != io.EOF; line, err = reader.ReadString('\n') {
log.Println(line)
}