go 语言随记
2019-01-11 本文已影响0人
栖梧楼主
if wr, err := os.OpenFile(path, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0644); err != nil {
以前有人跟我聊起go与java,我说go语言没有很好的异常处理机制,不像java,java中可以对异常进行统一处理。他说那是因为我还是用java的思维去思考go。其实我明白他当时根本就不知道我在说什么。go语言提供了panic与recover实现在对错误的处理,但go似乎不是太推崇这样做。上面那段代码是最常见的错误处理方式。C语言中经常用返回值等于0或等于一个负值代表错误。而go习惯用把错误放在方法返回的第二个参数中。以至于上面那段代码已成为go语言的标准模板了。