为什么go有时允许你调用函数而不捕获两个返回值?如:
func TestGolang() {
myMap := make(map[string]string)
test := myMap["value"]
// or
test, success := myMap["value"]
}
在其他时候,如果您不想使用该值,则需要捕获所有返回结果并使用空白标识符?
test := os.Stat("test") // fails
test, _ := os.Stat("test") // only way to make it work
我认为golang不支持单个函数的不同方法签名。第一个例子是如何工作的?我可以实现自己的函数,可选择返回错误或状态标志,但如果未捕获第二个返回值,则不会出错吗?
答案 0 :(得分:7)
事实上,golang不支持函数重载,因此您无法为函数定义不同的签名。但是语言定义中的一些操作(例如频道接收器或从地图获取数据)是幸运的'与超载一样的行为。