在 go 教程中經??吹揭韵麓a:a := foo()b, c := foo()或者實際上我看到的是:m["Answer"] = 48a := m["Answer"]v, ok := m["Answer"]定義了多少個 foo()?是兩種,一種具有一種返回類型,另一種具有兩種返回類型?或者只是一個 foo() 定義了兩個返回類型,當只需要一個返回值 ( a := foo())時,以某種方式神奇地省略了另一個返回值?我試過了package mainfunc main() { a := foo() a = 1}func foo() (x, y int) { x = 1 y = 2 return}func foo() (y int) { y = 2 return}但我收到錯誤信息 foo redeclared in this block
2 回答

茅侃侃
TA貢獻1842條經驗 獲得超22個贊
雖然一些內置操作支持單返回值模式和多返回值模式(例如從映射中讀取、類型斷言或在循環中使用 range 關鍵字),但用戶定義的函數無法使用此功能。
如果您想要具有不同返回值的函數的兩個版本,則需要為它們指定不同的名稱。
- 2 回答
- 0 關注
- 259 瀏覽
添加回答
舉報
0/150
提交
取消