我可以获取任何函数并将其panic("don't")
直接扔在它的中间,而不是在任何分支或循环内(使函数的其余部分成为“死”代码),go 编译器将愉快地编译和运行,而不会将其报告为问题。
有谁知道这是否是设计使然?(编译器大声抱怨未使用的导入,所以为什么不是死代码......)他们现在不能回去改变这种行为,因为 Go 1 发布了,他们会破坏现有的格式良好的代码。只是想知道这是疏忽还是故意的。如果有疏忽,我想它必须等到 Go 2(当他们可以破坏东西时)。
简短的回答:没有人真的在乎。
更长的答案:
正如@Volker 指出的那样,这并没有太大的区别。
我的问题特别是这种行为是否是设计使然。(对于 SO 来说,这可能是一个糟糕的问题,但是哦,好吧。)正在寻找这是否是故意的,或者只是一个疏忽。
Java 和其他语言都是这样做的,所以我试图看看是否有一些“不,我们在 Go 中不这样做,因为......”。似乎并非如此。据我所知,这并不是一个足够重要的问题,不能花时间去投入。
我在这里也问过这个问题,基本上回答是,是的,这是意料之中的,对不起你不喜欢它,它不会改变。它已被添加go vet
,应该足够了。这很好 - 我同意。