草庐IT

TS-枚举类型enum

全部标签

pointers - 为什么我的自定义错误类型会导致特定模式的错误?

这个问题在这里已经有了答案:MethodSets(PointervsValueReceiver)(3个答案)关闭4年前。我正在为go的接收器和指针而苦苦挣扎。我发现第4种模式会导致错误。为什么这种模式会导致错误,有什么区别?提前致谢。typeMyErrorstruct{}//OKpatternfunc(eMyError)Error()string{return"somethingbadhappened"}funcrun()error{returnMyError{}}//OKpatternfunc(eMyError)Error()string{return"somethingbadhap

go - 在 Golang 中将接口(interface)类型实现为函数类型

我创建了几种类型,包括接口(interface)://GetProfileHandlerFuncturnsafunctionwiththerightsignatureintoagetprofilehandlertypeGetProfileHandlerFuncfunc(GetProfileParams,interface{})middleware.Responder//Handleexecutingtherequestandreturningaresponsefunc(fnGetProfileHandlerFunc)Handle(paramsGetProfileParams,princ

go - 使用 DNSutil 从域中提取名称服务器 |类型 dns.RR 没有字段或方法 Hdr

我正在尝试使用GoLang从DNS记录中提取名称服务器。我遇到的问题是我无法从结构中读取字段。我正在将Response转换为JSON,这样我就可以“读取”它有哪些字段,为此我使用了以下代码:json,_:=json.Marshal(ns)fmt.Println(string(json))打印出来:{"Hdr":{"Name":"example.com.","Rrtype":2,"Class":1,"Ttl":172800,"Rdlength":16},"Ns":"ns2.example.eu."}现在,当我尝试使用以下方法从该字符串中打印出Name值时:fmt.Println(ns.H

go - 无法将 String 转换为 *net.TCPlistener 类型

我想将字符串放入net.Listener中,但出现错误:./server.go:26:23:cannotusemainServer(typeinterface{})astypestringinargumenttonet.Listen:needtypeassertion./server.go:27:28:cannotusegpServer(typeinterface{})astypestringinargumenttonet.Listen:needtypeassertion这是我的代码:viper.SetConfigFile("config.json")viper.AddConfigPa

go - 为什么在 Go 类型开关中声明一个单独的变量?

我无法理解为什么类型开关是用switch语句中定义的附加变量编写的。下面的代码似乎是被认可的做事方式:functest_func(iinterface{}){switchv:=i.(type){caseint:fmt.Printf("%T\n",v)casefloat64:fmt.Printf("%T\n",v)caseint:fmt.Printf("Idon'tknowabouttype%T!\n",v)}}funcmain(){test_func(float64(34))test_func(int(34))test_func("helloworld")}正如预期的那样,这将返回:f

go - 具有可变输入/输出类型的通用函数

只是玩awssdkforgo。当列出不同类型的资源时,我倾向于使用很多非常相似的函数,例如下面示例中的两个。有没有办法将它们重写为一个通用函数,该函数将根据作为参数传递的内容返回特定类型?类似于:funcgeneric(session,funcToCall,t,input)(interface{},error){}目前我必须这样做(功能相同,只是类型发生了变化):funcgetVolumes(s*session.Session)([]*ec2.Volume,error){client:=ec2.New(s)t:=[]*ec2.Volume{}input:=ec2.DescribeVol

带*点和不带指针的Golang类型方法?

这个问题在这里已经有了答案:Valuereceivervs.pointerreceiver(3个答案)关闭3年前。我刚接触golang。只是想了解为Calc类型声明的两种方法之间的区别。第一个函数sum被声明为(c*Calc)Sum,另一个没有*的函数被声明为(cCalc)Minus。两者之间的区别和推荐的写法是什么?我看到不同之处在于我们如何调用main下的函数。point*类型的方法需要new(Calc),另外一个可以直接调用Calc{}.Sum。一些行为解释会有所帮助。funcmain(){Calc{}.Minus(2,2)c:=new(Calc)c.Sum(3,2)}typeC

go - 如何让 golang 中的解码函数处理多种类型?

我在golang中使用json.unmarshalling函数来解码我们从API获得的一些JSON响应。如何让它处理多种类型?我们收到的响应总是状态码和消息,只是json字段有不同的名字。这两个字段有时称为code和message,有时称为statuscode和description,这取决于我们查询的内容。假设我们查询Apple,这可以通过创建一个Apple类型结构简单地解决,如下所示:typeApplestruct{Codeint`json:"code"`Descriptionstring`json:"message"`}但是当我们查询Peach时,我们得到的json不再是code

go - 从 io.Reader 在 golang 中解码 json 中的枚举

我在json中有一个字段是abc或def我想确保当我解码数据时它会检查该字段是否只包含其中一个2个有效值,有没有办法在golang中做到这一点而无需临时检查?我知道如果我有字节中的json,我可以做到这一点const(Enum1="abc"Enum1="def")func(s*MyJsonStruct)UnmarshalJSON(data[]byte)error{typeAuxMyJsonStruct;vara*Aux=(*Aux)(s);err:=json.Unmarshal(data,&a)iferr!=nil{returnerr}ifs.Key!=Enum1&&s.Key!=En

regex - 如何解决关于 'filter'字段必须是BSON类型对象的问题

我想在调用查找查询时解决这个问题。这是运行Golang,并使用包“”gopkg.in/mgo.v2/bson”。import"gopkg.in/mgo.v2"import"fmt"/*mongodb*/info:=&mgo.DialInfo{Addrs:[]string{1.1.1.1+":"+27017},Database:MgName,Username:MgId,Password:MgPasswd,}mgconn,err:=mgo.DialWithInfo(info)iferr!=nil{fmt.Printf("[ERR]mongodb:%s\n",err)return(-1)}/