草庐IT

api接口

全部标签

go - Golang 中的返回接口(interface)

假设我们想在error接口(interface)上扩展Error()函数。我们可以简单地创建一个从实现Error()方法的字符串派生的结构。例如:typeNewUserstruct{EmailstringPasswordstring}typeErrMissingFieldstringfunc(eErrMissingField)Error()string{returnstring(e)+"isrequired"}func(u*NewUser)OK()error{iflen(u.Email)==0{returnErrMissingField("email")}iflen(u.Passwor

pointers - 如何将接口(interface)转换为结构

这是缓存的简化代码。假设Container放在一个包中,所以它不知道Member。虽然我想在Container中存储Member的实例,但我在Container中存储了一个空的Member实例作为outerType。在Container->GetMysql中,我用测试值填充一个新变量(但在现实世界中,它是动态地用数据库数据填充的)。然后在函数Put中,我将数据存储在项目中作为缓存以备下次使用。在Get中,我获取存储在项目中的数据。在此之前一切都很好。我的问题是我想将Get的结果转换为Memberm=res.(Member)的类型。如何将其转换为Member的实例我发现了很多关于这个主题

go - 如何在 slice 中附加不同的功能但相同的接口(interface)

我试图附加可以用相同界面表示的不同功能。函数返回不同的对象但相同的接口(interface)。它失败并出现错误cannotuseTest(valueoftypefunc()*Dog)asfunc()Animalvalueinargumenttoappend(typecheck)我应该怎么办?提前致谢!packagemaintypeDogstruct{Wordstring}typeCatstruct{Wordstring}func(d*Dog)Say()string{returnd.Word}func(c*Cat)Say()string{returnc.Word}typeAnimalin

go - 如何在golang中间接传递接口(interface)

我有一个带有方法的包:funcRoute(router*mux.Router){subrouter:=router.PathPrefix(_API).Subrouter()subrouter.Path(_FOO).HandlerFunc(foo)subrouter.Path(_BAR).HandlerFunc(bar)}我想通过在我的包中有一个匹配的接口(interface)来删除mux的外部依赖性,该接口(interface)简单地包含上面使用的所有功能,如下所示:typeRouterinterface{Path(string)PathPathPrefix(string)Path}t

api - 语法错误 : need trailing comma before newline in composite literal

我在Golang中写了一些我觉得没问题的代码,但我发现了这个语法错误,我认为这与Go在行尾附加分号有关。有人可以解释这段代码有什么问题吗?成员的类型是fb.Result(又名map[string]interface{})funcworker(){deferwg.Done()fori:=rangeinput{member,err:=fb.Get("/1",fb.Params{"fields":"first_name","access_token":"valid_token",});err==nil{output 最佳答案 这是因为您在

go - GO中小写字母开头怎么暴露错误接口(interface)?

在GO语言规范中说需要导出到包外的东西必须以大写字母开头。我想知道error接口(interface)是如何暴露在外面的,并且可以在任何地方访问,即使它以小写字母开头,不像其他接口(interface)以大写字母开头,如Stringer。 最佳答案 error是一个内置类型,就像int、bool、string等。我猜你从来没有想过为什么int尽管以小写字母开头,但仍可用。内置类型是predeclaredidentifiers,它们在universeblock中隐式声明因此随处可用,无需任何导入或限定符。

api - golang json 解码中的指针

我正在尝试使用以下命令解码网络服务响应,它工作正常。bodyBytes,_:=ioutil.ReadAll(response.Body)bodyString:=string(bodyBytes)err=json.Unmarshal([]byte(bodyString),&output)fmt.Println(&output)当我使用指针变量“&output”时,它工作正常,即;输出正确显示。但是当我尝试在不使用&(&符号)的情况下直接使用变量时,输出看起来不太好。bodyBytes,_:=ioutil.ReadAll(response.Body)bodyString:=string(b

arrays - Go Lang - 接口(interface)和数组

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion我有一个我认为是“[]interface{}”类型的变量我如何检测它转换为数组?代码如下:varsstringswitchvalue1:=value1.(type){caseint:s=strconv.Itoa(value1)casefloat64:s=strconv.FormatFloat(value1,'f',0,64)//casearray://fmt.Printf("array")defa

走。接口(interface)中单值上下文中的多值

我阅读了下面的主题Go:multiplevalueinsingle-valuecontext但我不明白这个解释在我的案例中。可能是因为我想使用interface在下面的情况下,我得到错误multiple-valueNewObject()insingle-valuecontexttypeFacadeinterface{GetOne()int}typeObjectOnestruct{oneint}funcNewObject()(Facade,error){o:=&ObjectOne{}returno,errors.New("Somefunnyerror")}func(o*ObjectOne

go - Docker API 调用返回 "server gave HTTP response to HTTPS client"

我有以下代码,调用API返回错误如下,我还在下面粘贴了DockerDaemon命令。我已经尝试了HTTP/HTTPS/TCP的一些组合,有/没有TLS。我哪里错了?“panic:尝试连接时发生错误:获取https://172.28.8.212:2375/v1.24/containers/json?limit=0:http:服务器向HTTPS客户端提供HTTP响应"funcmain(){varheadersmap[string]stringtr:=&http.Transport{TLSClientConfig:&tls.Config{InsecureSkipVerify:true},}c