Go 中未使用的函數參數
與局部變數不同,Go 允許編譯器建構程序,即使它包含未使用的函數參數。這種行為與 C 等語言不同,在 C 語言中,未使用的變數會導致編譯錯誤。
其原因一直存在爭議。然而,正如關於 golang-nuts 的討論中所解釋的,它源於這樣的信念:
未使用的參數提供了必要的文檔,即使它們沒有在函數中明確使用,也有助於理解。例如:
func foo(param_a int, param_b int) int { return param_a }
儘管 param_b 未使用,但它的存在傳達了函數的意圖。這在以下情況下特別有用:
func Distance(node1, node2 Node) int { return 1 }
這裡,距離在所有邊上具有統一成本的加權圖上運行。雖然節點沒有被使用,但它們對於闡明函數的目的和充當文件至關重要。
雖然有些人認為只應允許使用下劃線 (_) 命名的未使用參數,但此變更將與 Go 的衝突未來相容性保證。此外,有人認為,儘管未在函數中使用,但未使用的參數可以提供有價值的文件。
最終,允許未使用的函數參數的決定是一個實際的決定,基於實用性和實用性之間的感知平衡。程式錯誤。具體原則可能沒有明確記錄,但它是基於 Go 軟體開發的實際情況。
以上是為什麼 Go 允許使用未使用的函數參數,而其他語言則不允許?的詳細內容。更多資訊請關注PHP中文網其他相關文章!