自己写的 go 代码就是由一堆的 if 搭起来的

2020 年 11 月 3 日
 bandian

代码里面在疯狂的 if 判断,其中 if err !=nil 最多,感觉一个函数三分之二都在写判断逻辑,这就是入门开发者吗

8722 次点击
所在节点    程序员
38 条回复
woahishui
2020 年 11 月 4 日
@jinliming2 这个缺点没有必要这么解释,程序的异常判断是正常的,但是在哪一层用户进行捕获,进行处理是用户自己的事情,所以这种写法就是因为用户不知道怎么去抛出异常,怎么在统一位置处理异常,才有的疑问
woahishui
2020 年 11 月 4 日
或许楼主是对如何抛出异常,如何优雅的统一处理异常不知道在 golang 怎么处理才有的这种感觉
ArJun
2020 年 11 月 4 日
其实看情况的,有些 err 可以直接_替换,没必要写那么多判断 err
ylsc633
2020 年 11 月 4 日
我情愿多写点 if err != nil

对于排错真的很友好..

对于一些十分有把握不会出现的 我直接 _
chengxiao
2020 年 11 月 4 日
别想太多 写就是了
到后面你会发现 如果没 error 返回
更让人害怕
a719031256
2020 年 11 月 4 日
这种写法其实挺好的,出了问题也容易找,最怕拼了命的封装写法,那个找问题就像从一堆垃圾中找一颗针
LANB0
2020 年 11 月 4 日
@togou 感觉不会 err 的地方,到后面一定会遇到 err 。写代码不要想当然,不然猿类早消灭 bug 了
stirlingx
2020 年 11 月 4 日
程序员的工作量不在于多写几个 if,而是排查 bug 。go 这种方式对找 bug 真的方便,可以省很多时间
BoarBoar
2020 年 11 月 4 日
等你写多了 你就会发现 if err !=nil 还是那么多
nguoidiqua
2020 年 11 月 4 日
不用 if 就会别的,除非不写程序,我反正 try catch if 什么的都可以接受。
kuro1
2020 年 11 月 4 日
鲁棒性极佳
dream4ever
2020 年 11 月 4 日
@Mohanson 就冲你这么大胆,我也要毫不留情地给你点个赞
wzw
2020 年 11 月 4 日
@Mohanson 还要很久吧
newtype0092
2020 年 11 月 4 日
@jinlimling2 看了你的对比,假如造一辆汽车,一般团队在关键结构用高强度材料进行加固,go 是把所有地方都用高强度制造,不计成本的生产方式?
raaaaaar
2020 年 11 月 4 日
提前 return,这样不会太臃肿,给 error 分层,多封装点接口。。。。然后你会发现还是那么多 if 。。
sssooonnnggg
2020 年 11 月 4 日
相比之下 rust 的 result+?就香疯了
taowen
2020 年 11 月 4 日
qloog
2020 年 11 月 6 日
面向错误编程,今早处理错误,是很不错的一种方法。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/721464

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX