草庐IT

lua接口

全部标签

pointers - 为什么接口(interface)类型不提供 "IsNil"方法?

首先让我们考虑以下几点:funcprocess(bodyio.Reader){fmt.Printf("body==nil?%+v\n",body==nil)}funcmain(){varbody*bytes.Bufferfmt.Printf("body==nil?%+v\n",body==nil)process(body)process(nil)}这是输出:body==nil?truebody==nil?false//Didyougetthisright?body==nil?true另一个例子:typeContainerstruct{Readerio.Reader}funcproces

gob.Register 名称未在另一个包中注册接口(interface)

我最近重组了我的代码,现在main包下有两个包:chain和api。在chain中,我定义了一些结构SomeStruct1、SomeStruct2和这些结构的接口(interface)SomeInterface。以下是chain/cli.go的样子。packagechaintypeCLIstruct{}func(cli*CLI)Run(){...gob.Register(SomeStruct1{})gob.Register(SomeStruct2{})...}还有另一个类似的api/api.go,在Run()里面我放了gob.Register(chain.SomeStruct1{}).

go - 多Consumer场景下Go接口(interface)应该在哪里定义?生产者中的界面如何显示通用性?

有人可以给我这个建议的具体例子吗?https://github.com/golang/go/wiki/CodeReviewComments#interfaces这就是我遵循的方式吗?packageworkertypeinterfaceDB{getAllTable()}typeworkerstruct{dbDB}func(wworker)doSomething(){w.db.getAllTable()}packagelistenertypeinterfaceDB{getAllTable()}typelistenerstruct{dbDB}func(llistener)doSomethin

go - 无法根据 Golang 中的条件将接口(interface)转换为结构

我在下面添加了两个结构,我正在尝试创建一个通用函数,在该函数中我将结构名称作为字符串传递。我最近开始研究Go。typeUserDetailstruct{FirstNamestringLastNamestringEmailstringUserintReportsToint}typeMatterstruct{IDintNamestringActiveboolCreatedAttime.TimeUpdatedAttime.TimeUserIDint}下面添加了函数片段funcTesting(modelstring){vartempinterface{}ifmodel=="UserDetail

go - 类型转换接口(interface) slice

我很好奇为什么Go不将[]T隐式转换为[]interface{}而它会隐式转换T到接口(interface){}。我缺少关于此转换的重要信息吗?例子:funcfoo([]interface{}){/*dosomething*/}funcmain(){vara[]string=[]string{"hello","world"}foo(a)}gobuild提示cannotusea(type[]string)astype[]interface{}infunctionargument如果我尝试明确地这样做,同样的事情:b:=[]interface{}(a)提示cannotconverta(ty

go - 如何在 Go 中复制接口(interface)值?

如何在Go中复制接口(interface)值?我的用户界面:typeUserinterface{Name()stringSetName(namestring)}我的Admin结构:typeAdminstruct{namestring}func(a*Admin)Name()string{returna.name}func(a*Admin)SetName(namestring){a.name=name}我尝试复制user1的值。主要功能:funcmain(){varuser1Useruser1=&Admin{name:"user1"}fmt.Printf("User1'sname:%s\n

go - 将 Go Struct 实例转换为 Lua 表

我有一个GoStruct实例,我想使用GopherLua将该实例传递给Lua方法。我的Go代码是这样的:dog:=new(Animal)runParam:=lua.P{Fn:L.GetGlobal("run"),NRet:1,Protect:true,}mt:=luar.MT(context.AppContext.LuaVM,dog)userData:=&lua.LTable{Metatable:*mt}userData.Append(&lua.LUserData{Value:dog,Metatable:mt,Env:mt.LTable})err=L.CallByParam(runPa

ssl - 是否有用于解码 ASN.1 格式的 TLS 证书的接口(interface)

我正在解析从PCAP文件中获取的TLS记录。我有ASN.1格式的TLS证书字节(在[]byte中)。我想将这个byteslice解码为一个有用的结构(避免手动解析ASN.1)。我似乎无法找到遵循RFC的TLS证书的接口(interface)在encoding/asn1也不crypto/tls.这是在我找不到的地方创建的还是我需要自己编写? 最佳答案 该结构在x509package中 关于ssl-是否有用于解码ASN.1格式的TLS证书的接口(interface),我们在StackOver

go - 如何保证结构字段的存在,就像接口(interface)对方法所做的那样?

我有几个交易结构:SpendTxNameTransferTxNameUpdateTx...我想估计这些结构的大小,不包括费用字段。他们都有一个Fee结构字段。目前,对于每个结构我都有这个方法:func(tx*NameTransferTx)sizeEstimate()(int,error){feeRlp,err:=rlp.EncodeToBytes(tx.Fee)iferr!=nil{return0,err}feeRlpLen:=len(feeRlp)rlpRawMsg,err:=tx.RLP()iferr!=nil{return0,err}returnlen(rlpRawMsg)-fe

json - 对于嵌套在结构中的接口(interface),如何在同一级别显示 json?

这里有一个接口(interface)SpecificTemplate嵌套在结构Template中:packagemainimport("encoding/json""fmt")typeSpecificTemplateinterface{GetLabel()string}typeTemplateAstruct{Labelstring`json:"label"`}func(tTemplateA)GetLabel()string{returnt.Label}typeTemplatestruct{Idint64`json:"id"`SpecificTemplate}funcmain(){ta: