这种错误处理是如何工作的。CSV文件读写案例

我正在学习如何在 Go 中读写 CSV 文件和错误处理。

答案是


for line, err: = reader.Read (); err == nil; line, err = reader.Read () {

    if err = writer.Write ([] string {line [col_index [0]], line [col_index [1]], line [col_index [2]]}); err! = nil {

            fmt.Println ("Error:", err)

            break

    }

    writer.Flush ()

}

为什么错误等于 writer.Write() 的返回?


我习惯只看到


err! = nil {

            fmt.Println ("Error:", err)

            break

    }

你能给我解释一下吗?


千万里不及你
浏览 134回答 2
2回答

肥皂起泡泡

你应该读到行尾,这是一个if 语句,在比较之前执行了一个赋值。缩短Write通话时间,这是:if err = writer.Write(...); err != nil {writer.Write这首先分配to的返回值err,然后根据 nil 检查它。一个重要的说明:等号运算符是==,不是=。另一个注意事项:你应该gofmt在你的代码上运行,!=并且:=中间不应该有空格。事实上,你的间距无处不在。

POPMUISE

如果您查看第一行的组件:for line, err: = reader.Read ();  // Declare err and assign to the result of Readerr == nil;  // Continue looping while err==nilline, err = reader.Read ()  // Read again, and assign err{上面的 for 循环将在 err==nil 时继续循环读取行。然后: if err = writer.Write (...); err! = nil {这是使用err在 for 循环中创建的相同内容。Write如果返回错误,它将简单地中断循环。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go