gpt4 book ai didi

go - Go语言中如何在运行时检查变量类型

转载 作者:IT老高 更新时间:2023-10-28 12:58:34 28 4
gpt4 key购买 nike

我很少有这样声明的 C 函数

CURLcode curl_wrapper_easy_setopt_long(CURL* curl, CURLoption option, long param);
CURLcode curl_wrapper_easy_setopt_str(CURL* curl, CURLoption option, char* param);

我想像这样将它们公开为一个 Go 函数

func (e *Easy)SetOption(option Option, param interface{})

所以我需要能够在运行时检查 param 类型。我该怎么做?这是个好主意(如果不是这种情况下的好做法)?

最佳答案

似乎 Go 有一种特殊形式的 switch 专用于此(称为 type switch):

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)))
}
}

关于go - Go语言中如何在运行时检查变量类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6996704/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com