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

2020-11-03 17:21:45 +08:00
 bandian

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

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

对于排错真的很友好..

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

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

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

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

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

© 2021 V2EX