我可以使用任何函数并在其中间抛出panic("don't")
,而不是在任何分支或循环内部(使函数的其余部分为“死”代码),并且go编译器将很乐意编译并运行没有报告这是一个问题。
任何人都知道这是否符合设计要求? (编译器大声抱怨未使用的导入,所以为什么不死代码...)他们现在不能回去并改变那种行为,因为Go 1被释放,他们将破坏现有格式良好的代码。只是想知道这是疏忽还是故意的。如果疏忽,我猜它必须要等到Go 2(当他们可以破坏东西时)。
答案 0 :(得分:1)
简短回答:没有人真正给老鼠屁股。
更长的回答:
正如@Volker指出的那样,它没有太大的区别。
我的问题是具体的,如果这种行为是设计的。 (对于SO而言,这可能是一个糟糕的问题,但是很好。)正在寻找这个是故意的,还是只是疏忽。
Java和其他语言这样做,所以我试图看看是否有一些“我们不会在Go中这样做,因为......”。似乎并非如此。从我可以收集的内容来看,花时间投入就不是一个重要的问题。
我也问了这个here,答案基本上是肯定的,这是预期的,抱歉你不喜欢它,它不会改变。它被添加到go vet
,这应该足够了。哪个好 - 我同意。