Golang 中自訂程式庫會觸發編譯時錯誤嗎?
Golang 中,呼叫時不可能觸發編譯時錯誤具有不帶參數的可變參數的函數。語言規範認為函數呼叫 min() 是有效的。
但是,有一種解法來強制傳遞至少一個參數。透過修改函數簽章以包含非可變參數和可變參數,可能會產生編譯時錯誤。
修改的函數簽章:
func min(first int, rest ...int) int { // ... Same logic as before }
此簽章需要至少一個參數(第一個)並允許多個附加參數(休息)。
用法:
// This is now a compile-time error min() // Valid calls min(1) min(1, 2) min(1, 2, -3)
注意:
如果只有一個參數,上述修改可以提高效率由於未創建切片而被傳遞。但是,仍然可以使用以下技術傳遞切片:
s := []int{1, 2, -3} min(s[0], s[1:]...) // Pass first element and sliced slice as variadic parameter
如果修改函數簽章不可行,則執行時恐慌或應用程式退出是處理遺失參數的唯一選項。
以上是自訂 Go 函式庫是否會因缺少可變參數函數參數而產生編譯時錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!