Golang 文件 reader 范围错误

Golang File reader scopes mistake

我正在尝试了解两种文件读取情况之间的区别。

下面的代码工作正常。我们逐行读取文件到变量:

reader := bufio.NewReader(file)

var line string
for err != io.EOF {
    line, err = reader.ReadString('\n')
    log.Println(line)
}

但是如果我想在 for 范围内初始化(使用 reader),reader 将无限地只读取第一行代码:

reader := bufio.NewReader(file)

var line string
for line, err = reader.ReadString('\n'); err != io.EOF; {
    log.Println(line)
}

请解释一下为什么会这样?谢谢

将其从初始化 (Which runs only once) 移至 post 语句。 改成

for line, err = reader.ReadString('\n'); err != io.EOF; line, err = reader.ReadString('\n') {
    log.Println(line)
}