首頁 > 後端開發 > Golang > 自訂 Go 函式庫是否會因缺少可變參數函數參數而產生編譯時錯誤?

自訂 Go 函式庫是否會因缺少可變參數函數參數而產生編譯時錯誤?

Mary-Kate Olsen
發布: 2024-12-05 13:03:10
原創
823 人瀏覽過

Can Custom Go Libraries Generate Compile-Time Errors for Missing Variadic Function Arguments?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板