草庐IT

interface-design

全部标签

go - 类型接口(interface) {} 是没有方法的接口(interface)

我正在使用https://github.com/kataras/iris戈兰网络框架。这是此处提出的最后一个问题的后续邮件-FetchingLoggedinUserInfofordisplay-GolangTemplate我终于使用了上一篇文章中提到的代码,例如:-ctx.Values().Get("用户")并且用户设置或拥有的值是“结构”类型:-//usersisstructbelowvaruserusers//detailsarefetchedfromDBandassignedtouser//likementionedherehttp://go-database-sql.org/r

Golang,带指针和接口(interface)的用例

我正在编写一个我需要在我的程序的其他部分使用的库,为此我不得不使用很多接口(interface),我最终遇到了一个我不知道如何解决的情况。这是我的代码:主.gopackagemainimport("test/bar")//FooisdefinedinanotherpackagetypeFoostruct{WhatWeWantstring}func(f*Foo)getResult()interface{}{returnf.WhatWeWant}funcnewFoo()interface{}{return&Foo{WhatWeWant:"test",}}funcmain(){bar:=ba

Golang,带指针和接口(interface)的用例

我正在编写一个我需要在我的程序的其他部分使用的库,为此我不得不使用很多接口(interface),我最终遇到了一个我不知道如何解决的情况。这是我的代码:主.gopackagemainimport("test/bar")//FooisdefinedinanotherpackagetypeFoostruct{WhatWeWantstring}func(f*Foo)getResult()interface{}{returnf.WhatWeWant}funcnewFoo()interface{}{return&Foo{WhatWeWant:"test",}}funcmain(){bar:=ba

go - golang 函数可以返回接口(interface){}{} - 如何返回映射列表

funcgetLatestTxs()map[string]interface{}{}{fmt.Println("hello")resp,err:=http.Get("http://api.etherscan.io/api?module=account&action=txlist&address=0x266ac31358d773af8278f625c4d4a35648953341&startblock=0&endblock=99999999&sort=asc&apikey=5UUVIZV5581ENPXKYWAUDGQTHI956A56MU")deferresp.Body.Close()

go - golang 函数可以返回接口(interface){}{} - 如何返回映射列表

funcgetLatestTxs()map[string]interface{}{}{fmt.Println("hello")resp,err:=http.Get("http://api.etherscan.io/api?module=account&action=txlist&address=0x266ac31358d773af8278f625c4d4a35648953341&startblock=0&endblock=99999999&sort=asc&apikey=5UUVIZV5581ENPXKYWAUDGQTHI956A56MU")deferresp.Body.Close()

go - 对接口(interface)进行类型断言,内部发生了什么

我很好奇当Go以另一个接口(interface)作为其目标执行类型断言时,内部会发生什么。仅作为示例,请考虑来自DaveCheney'sblog的示例:typetemporaryinterface{Temporary()bool}//IsTemporaryreturnstrueiferristemporary.funcIsTemporary(errerror)bool{te,ok:=err.(temporary)returnok&&te.Temporary()}我预计这里会发生相当多的运行时开销,因为它必须检查err的类型并确定它是否具有所有方法。是这样吗,还是在下面发生了一些聪明的魔

go - 对接口(interface)进行类型断言,内部发生了什么

我很好奇当Go以另一个接口(interface)作为其目标执行类型断言时,内部会发生什么。仅作为示例,请考虑来自DaveCheney'sblog的示例:typetemporaryinterface{Temporary()bool}//IsTemporaryreturnstrueiferristemporary.funcIsTemporary(errerror)bool{te,ok:=err.(temporary)returnok&&te.Temporary()}我预计这里会发生相当多的运行时开销,因为它必须检查err的类型并确定它是否具有所有方法。是这样吗,还是在下面发生了一些聪明的魔

go - 返回数组作为接口(interface)

案例一我有以下方法,效果很好。这里我返回一个数组作为接口(interface)。funcReturnArrayAsInterface1()interface{}{retval:=make([]int,0)retval=append(retval,4,6,8,10)returnretval}案例2考虑以下方法。这里我想在出现panic时返回错误,所以我在开头定义了retval并在defer中更改了它的值。但这显示错误“无法使用‘retval’(类型接口(interface){})作为类型[]Type”funcReturnArrayAsInterface2()(retvalinterfac

go - 返回数组作为接口(interface)

案例一我有以下方法,效果很好。这里我返回一个数组作为接口(interface)。funcReturnArrayAsInterface1()interface{}{retval:=make([]int,0)retval=append(retval,4,6,8,10)returnretval}案例2考虑以下方法。这里我想在出现panic时返回错误,所以我在开头定义了retval并在defer中更改了它的值。但这显示错误“无法使用‘retval’(类型接口(interface){})作为类型[]Type”funcReturnArrayAsInterface2()(retvalinterfac

Golang接口(interface)的正确使用

我是Go的新手,遇到了一种我不确定如何解决的情况。我正在编写一些代码,以原始字节形式获取DNS数据包并返回一个名为DNSPacket的结构。结构如下所示typeDNSPacketstruct{...somefieldsQuestions[]QuestionAnswers[]Answer...somemorefields}我遇到的问题是Answers类型,如下所示。typeAnswerstruct{NamestringTypeintClassintTTLuint32RdLengthintData[]byte}根据Answer的类型,Data字段必须以不同方式解码。例如,如果答案是A记录(