當調用具有多個返回值的函數或方法時,調用者如果解包任何返回值,則必須將它們全部解包。f, err := os.Open("filename")變量err必須用空白標識符聲明或忽略_,但不能省略。但是,語言中內置了一些操作,允許省略可選的第二個返回值。是否有或多或少正式的情況列表,其中具有數據結構的操作或函數調用返回第二個值,該值是可選的并且可以通過僅接收第一個返回值來忽略?例如:m := make(map[string]int)
v, ok := m["hello"]該ok變量完全是可選的,可以省略。v := m["hello"]同樣,對于頻道:v, ok := <-ch或者v := <-ch除了上述兩種情況之外,還有其他這種行為的情況嗎?
1 回答

楊魅力
TA貢獻1811條經驗 獲得超6個贊
在賦值或初始化中使用時具有可選值的表達式是:?type assertion、map index和channel receive。
規范沒有這些表達式的正式列表,但規范中都描述了這些表達式。
- 1 回答
- 0 關注
- 139 瀏覽
添加回答
舉報
0/150
提交
取消