jjzjj

go - 处理 struct 的 `New()` 错误的最佳实践

给定:typeAstruct{}funcNew()*A{return&A{}}处理构建期间发生的错误的基于最佳实践的建议是什么?现实世界的场景是根据一些可能无效的locationstring为特定的time.Location构造一个time.Time.编辑:这不仅仅是“构造函数应该返回错误”。我想讨论替代方案。例如,如果它没有返回错误,也许我们不允许将值传递到可能导致错误的构造函数中。我想考虑不同方法的优点。编辑2:可能的方法:在构造函数中返回一个错误只返回一个有效的结构并且不允许潜在无效的构造函数参数出错时返回一个nil结构实例编辑3:评级标准调用代码行自己的代码行模糊程度

arrays - 如何使用 Golang 将数据放入结构中?

这是我的代码:packagemainimport"fmt"typeSpeciesstruct{Human[]InfoAnimal[]Info}typeInfostruct{NamestringNumberstring}funcmain(){vardataSpeciesdata=????fmt.Println(data)}我想把它看成这样的json:{"human":[{"name":"dave","number":"00001"},{"name":"jack","number":"00002"},{"name":"nate","number":"00003"}],"animal":[{

pointers - 从非 chan 类型接收 *bool

我想守护我的应用程序,但我有一个大问题。我使用的channel是chanstruct{}类型。但是,对于包getopt(标志包),我的标志是*bool类型,所以我不知道如何修改我的应用程序。bool类型的channel还不够。我确定有一个我不明白的概念。我附上代码:packagemainimport("os""syscall""time""github.com/pborman/getopt/v2""github.com/sevlyar/go-daemon")var(done=make(chanstruct{})optQuit=make(chanstruct{})optRun=make(

datetime - 如何在不解析表行的情况下更改结构上的日期格式(如 "yyyy-mm-dd")?

我想更改EntryDate格式,例如在结构上格式化的yyyy-mm-dd,typeValuestruct{Iduint`json:”id”`EntryDatetime.time`json:”entry_date”`ProductIdint`json:"product_id"`Valuefloat64`json:”value”`}默认结果是这样的{Id:11,EntryDate:"2017-11-23T00:00:00Z",product_id:1,Value:932.3},如何在不解析代码的情况下更改结构上的EntryDate格式,如“yyyy-mm-dd”?

go - 结构内的结构 slice/数组

请考虑这个代码片段:https://play.golang.org/p/JkMIRwshG5U我的Service结构包含:typeServicestruct{ServiceNamestringNodeCountintHeadNodeNodeHealthbool}我的节点结构有:typeNodestruct{NodeNamestringLastHeardintRoleboolHealthbool}假设我的服务有3个节点;我希望Service结构也有/保留一个节点列表。或者,由于这是Go,所以是一片结构,我如何在Service结构中表示它?(抱歉,如果这个问题仍然模棱两可!)

arrays - 在 golang 中创建 map 数组的 map

我想在golang中创建一个json,我需要首先为其创建以下映射:{"inputs":[{"data":{"image":{"url":"SOME_URL"}}}]}如何在golang上创建这个map。(现在即使硬编码也适用于我) 最佳答案 在结构中:typeSomeDatastruct{Inputs[]struct{Datastruct{Imagestruct{URLstring`json:"url"`}`json:"image"`}`json:"data"`}`json:"inputs"`}但是如果我们希望能够单独添加东西,并且

go - 使用值创建结构实例

//ValidchecksConfigdatafunc(c*Config)Valid()Error{//Checkmapping.hostsfor_,raw:=rangec.Mapping.Hosts{ifvalidIP:=utils.ValidIP4(raw.IPAddress);!validIP{err:=new(InvalidIPError)returnerr}}returnnil}//ErrorrepresentserrorsinconfigtypeErrorinterface{Error()string}//InvalidIPErrorraiseswheninvalidipp

google-app-engine - 具有接口(interface)类型字段的结构

为什么我不能在golang中使用这个?typeEventDefinitionstruct{NamestringEventPropertiesinterface{}}其中EventProperties可以是多种类型的结构之一,每个结构具有不同的字段。这个想法是有一个带有EventProperties的EventDefinitiontypePartystruct{LocationstringHourstring}或typeWeddingstruct{BridestringGroomstringHourstring}或typeGraduationstruct{LocationstringGr

go - 不能用方法迭代结构?

我的问题是,我有指定的应用程序:myapp|-app/main.go|-data/a.go|-data/b.go在a.go中我有带方法的结构packagedatatypeAstruct{Field_astringField_bstring}func(aA)SomeMethod()string{return"somemethodA"}在b.go中类似:packagedatatypeBstruct{Field_astringField_bstring}func(bB)SomeMethod()string{return"somemethodB"}现在我在main.go中以这种方式引用:pac

struct - 如何从函数访问结构的实例字段?

假设我有一个Graph结构,如下所示:typeGraphstruct{nodes[]intadjListmap[int][]int}//somemethodsonthestruct//constructorfuncNew()*Graph{g:=new(Graph)g.adjList=make(map[int][]int)returng}现在,我创建了该结构的一个新实例,其中:aGraph:=New()。如何访问Graph结构(aGraph)的这个特定实例的字段?换句话说,我如何访问aGraph版本的nodes数组(例如,从另一个顶级函数中)?非常感谢任何帮助!