草庐IT

类结构

全部标签

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在这个例子中:类

sorting - 按指定字段对结构 slice 进行排序

假设我有结构SortableStruct有3个字段ABC我想实现消费函数sl[]SortableStruct和orderFiedstring其中orderField是结构的字段之一。此函数应重新运行按orderField排序的slice。有没有办法在没有巨大开关盒的情况下做到这一点。当我想比较不同字段的结构时,如何实现sort.Interface对我来说并不难。 最佳答案 嗯,最简单的方法是切换field类型并分配一个SORT函数。这是您的代码:packagemainimport("fmt""sort")typeSortableSt

go - 如何在结构中打印结构 slice 的标记

我有结构配置,它由字段SliceOfAnotherStruct组成,其中包含指向的指针的sliceAnotherStruct.这里如何获取AnotherStruct中Bank字段的json标签。typeConfigstruct{SliceOfAnotherStruct[]*AnotherStruct`bson:"anotherStruct"json:"anotherStruct"validate:"required,dive,required"`}typeAnotherStructstruct{Namestring`bson:"name"json:"name"validate:"req

go - 将方法添加到嵌套的导出结构中

我想在导出结构中使用的嵌套导出结构中添加一个方法。我有一个由ldap.Search().Entries返回的[]*ldap.Entry类型ldap.Entry类型由Attributes[]*EntryAttribute组成。我的目标是在ldap.EntryAttribute中添加一个额外的方法,例如MarshalJSON我可以将额外的代码直接添加到ldap包中,它会按我预期的那样工作。但这是一种肮脏的方式://EntryAttributeholdsasingleattributetypenewEntryAttributestruct{//Nameisthenameoftheattrib

go - 在结构定义之外使用方法的原因是什么?

为什么我们要在结构的类型定义之外声明方法?例如:typeantennastruct{namestringlengthfloat32girthfloat32bloodtypestring}func(p*antenna)extend(){p.length+=10}在我看来,该方法可能是结构的一部分?(让我们暂时忽略结构应该是值类型)typeantennastruct{namestringlengthfloat32girthfloat32bloodtypestringfuncextend(){length+=10}}这更类似于传统的OOP。除了“结构是值类型而类是引用类型”之外,我没有找到任