为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
千万里不及你 2022-06-27 15:12:34
我正在学习如何在 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    }你能给我解释一下吗?
查看完整描述

2 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

你应该读到行尾,这是一个if 语句,在比较之前执行了一个赋值

缩短Write通话时间,这是:

if err = writer.Write(...); err != nil {

writer.Write这首先分配to的返回值err,然后根据 nil 检查它。

一个重要的说明:等号运算符是==,不是=

另一个注意事项:你应该gofmt在你的代码上运行,!=并且:=中间不应该有空格。事实上,你的间距无处不在。


查看完整回答
反对 回复 2022-06-27
?
POPMUISE

TA贡献1765条经验 获得超5个赞

如果您查看第一行的组件:


for line, err: = reader.Read ();  // Declare err and assign to the result of Read

err == nil;  // Continue looping while err==nil

line, err = reader.Read ()  // Read again, and assign err

{

上面的 for 循环将在 err==nil 时继续循环读取行。


然后:


 if err = writer.Write (...); err! = nil {

这是使用err在 for 循环中创建的相同内容。Write如果返回错误,它将简单地中断循环。


查看完整回答
反对 回复 2022-06-27
  • 2 回答
  • 0 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号