谢邀,这个要从Go语言的设计思想来说了,Go语言追求显式的表达,避免隐含,这种设计在其面向对象的语法中尤其明显


从上面一段代码可以看出来,它把其他语言中隐含的 this 指针显式化了

那么在Go语言的函数中,同样也追求显式表达,于是就把参数默认值这个其他语言常见的功能去掉了。

事实上在我使用Go语言的过程中,对于参数不支持默认值这一点并没有感觉有什么不适,而且用到参数默认值的地方也不多。

PS:在我使用其他语言的过程中,有的时候会遇到因为参数默认值导致的一些问题,有时调试很长时间也不得结果。