在Go 中傳回多個值:了解細微的限制
在Go 中,傳回多個值可讓您從單一函數傳回多個結果。然而,並非所有多次返回場景都被認為是有效的。讓我們探討一下此規則的限制條件和一個值得注意的例外。
為什麼兩個回傳值範例有效
您提供的範例:
是有效的,因為它遵循“逗號ok”模式。這個習慣用法專門在存取映射鍵時使用:
為了檢索映射值和「ok」狀態,我們必須將它們指派給變數。編譯器理解“it”和“present”變數用於解構映射索引操作的結果。
為什麼一個回傳值範例無效
相較之下,以下範例:
無效,因為它不會破壞地圖索引操作。這會導致返回值單一,與函數指定的返回類型不相容。
不可能避免臨時變數
目前還不可能在這種特定情況下可以避免臨時變數。 「comma ok」習慣用法需要將解構值明確分配給變數。
結論
理解 Go 中多個回傳值的細微差別至關重要。雖然「comma ok」模式允許多個返回值,但它僅限於映射索引、通道檢索和類型斷言。因此,在您的情況下,當從地圖索引操作傳回值和「ok」狀態時,臨時變數是必要的。
以上是為什麼在 Go 中我無法在不解構的情況下傳回多個值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!