在Go 中動態檢查變數類型
將多個C 函數公開為單一Go 函數時,需要確定變數的型別執行時傳遞參數。 Go 的類型開關為此提供了有效的解決方案。
要檢查參數的類型,可以使用 switch 語句,如下所示:
switch v := param.(type) { case uint64: // Handle uint64 type case string: // Handle string type default: // Handle unexpected type }
此類型開關將檢查參數的類型傳入的參數並執行對應的case。例如,它可用於將多個 C 函數公開為一個 Go 函數:
func (e *Easy)SetOption(option Option, param interface{}) { switch v := param.(type) { default: fmt.Printf("unexpected type %T", v) case uint64: e.code = Code(C.curl_wrapper_easy_setopt_long(e.curl, C.CURLoption(option), C.long(v))) case string: e.code = Code(C.curl_wrapper_easy_setopt_str(e.curl, C.CURLoption(option), C.CString(v))) } }
在此範例中,類型開關允許 SetOption 函數處理 uint64 和字串參數並調用適當的 C 函數因此。這種方法提供了一種方便且安全的方式來處理 Go 中不同類型的參數。
以上是Go中如何動態檢查變數類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!