草庐IT

文章结构

全部标签

json - 从空的 Payload 结构中获取字段

我是Golang新手,使用的是Golibrary用于处理来自Github的一些webhook事件。我可以访问此处定义的Deployment的Payload结构:https://github.com/go-playground/webhooks/blob/v3/github/payload.go#L384库解析webhookJSON负载并构建它。这是一个自定义字段,即它是一个HashMap/字典,其字段可以由客户端自定义设置。所以我认为它被库定义为一个空结构。如何从此结构中提取名为“foo”的特定字段? 最佳答案 现在您可以实现的目标

go - 尝试将 yaml 数据转换为结构时输出为空

这个问题在这里已经有了答案:GoUnmarshalingYAMLintostruct(2个答案)关闭4年前。我正在尝试将yaml数据转换为结构并打印它。我得到的这个程序的输出是空的。packagemainimport("fmt""gopkg.in/yaml.v2")typeexamplestruct{variable1stringvariable2string}funcmain(){varaexampleyaml.Unmarshal([]byte("variable1:asd\nvariable2:sdcs"),&a)fmt.Println(a.variable1)}

go - 如何在方法中返回结构变量

此程序无法编译。它表明Env方法在方法call上的结构sample上不可用。我可以直接在主程序中访问Env变量,但我很想知道为什么这不能编译。packagemain//SampleisastructtypeSamplestruct{Envstring}funcmain(){pa:=&Sample{Env:"acd"}pa.call()}func(p*Sample)call()*Sample.Env{return&p.Env} 最佳答案 函数类型由关键字func定义,后跟一个可选的接收者,然后是函数名、括号之间的参数列表(可能为空)和

go - 命名空间和祖先在数据结构上的区别

有什么区别key:=datastore.NameKey("user",userID,nil)client.Put(ctx,datastore.IncompleteKey("session",key),&sessionUser)和key:=&datastore.Key{Kind:"session",Parent:nil,Namespace:userID}client.Put(ctx,key,&sessionUser)如果它们具有可能导致contention的相同写入/读取,为什么它们会不同?从这个articleCloudDatastoreprependsthenamespaceandth

go - 在 Go Lang 中分配给结构指针的属性

我收到以下错误不能在赋值中使用'"No3A4"'(字符串类型)作为类型*string如何为不返回行的查询添加默认值,这样我就不能使用row.Scan()函数,示例代码如下。func(orders*Orders)getOrderStatus(){varerrerrorfor_,order:=range*orders{row:=db.QueryRow("SELECTstatusFROMmss_ordersWHEREexternalorderkey=?ORDERBYtipoASCLIMIT1",order.PoNumber)err=row.Scan(&order.Status)iferr!=

go - 解析 yaml 结构错误

我有以下yaml,当我尝试解析它时出现错误,知道这里可能遗漏了什么吗?我不确定如何构造区域属性。T他是有效的yamlhttps://codebeautify.org/yaml-validator/cb42f23a错误:errorinmodelextConfigYaml:*yaml:line4:mappingvaluesarenotallowedinthiscontexttypeExternalConfigstruct{Landscapezone`yaml:"Landscape"`}typezonestruct{zonemodels`yaml:"zone"`}typemodelsstru

go - 读入一个结构会覆盖另一个

我在管理Go中的结构方面遇到了一些问题。我有复杂的结构和两个基于该结构的变量——“previous”和“current”。我正在尝试从tarfile中读取数据,进行一些计算并将以前的替换为当前的。但是在我读到当前的下一次阅读迭代中,在我看来,“先前”的内容被覆盖并且两个变量变得相同。结构定义如下:typeMystructstruct{Data[][]sql.NullStringRnames[]stringNsizeintMsizeintNamemaxlenmap[string]intValidboolErrerror}变量不是指针。复制作为直接赋值执行:以前的=当前的。tr:=tar.

go - 对结构字段进行持续更改*并*满足 Writer 接口(interface)?

这个问题在这里已经有了答案:XdoesnotimplementY(...methodhasapointerreceiver)(4个答案)关闭4年前。为了实际更改方法中的struct字段,您需要一个指针类型的接收器。Iunderstandthat.为什么我不能用指针接收器满足io.Writer接口(interface),以便我可以更改结构字段?有没有惯用的方法来做到这一点?//CountWriterisatyperepresentingawriterthatalsocountstypeCountWriterstruct{CountintOutputio.Writer}func(cw*Co

go - 将结构从字符串数组更改为深度数组

我有以下结构,我手动创建了值,如appservicerunneretcfuncCmr(mPathstring)[][]string{cav:=[][]string{{mPath,"app","app2"},{mPath,"service"},{mPath,"runner1","runner2","runner3"},}returncav}现在我需要从这个输入创建这个结构,我的意思是返回相同的结构‘cav`现在我有其他函数返回字符串数组namecmdList每行在值之间有一个空格分隔符r,例如appapp2appN0=appapp21=service2=runner1runner2run

go - 如何将结构转换为基本类型,而不是 Go 中的直接类型?

我需要将未知立即类型的接口(interface)转换为已知的基本类型。例子packagemainimport("fmt""reflect")typeAstruct{foostring}typeBAfuncmain(){bS:=B{foo:"foo"}bI:=reflect.ValueOf(bS).Interface()fmt.Println(bI)aS:=bI.(A)fmt.Println(aS)}当这段代码运行时,可以理解的是,它会出现panic并显示以下消息panic:interfaceconversion:interface{}ismain.B,notmain.A在这个例子中:类