草庐IT

Inheritance

全部标签

inheritance - golang中如何设置继承

tl;dr在此示例中,将Store设置为在多个服务之间共享的正确方法是什么:https://github.com/th0th/goblog/blob/2b2d7ac51978de41f392396309424043817a49d7/store/store.go#L29详情您好,我正在尝试通过创建一个简单的MVC-ish博客RESTAPI来理​​解go的工作原理。我计划应用程序包含3个包/层:模型保存数据结构。定义这些结构的数据库访问层的接口(interface)。商店显示实际的数据库连接。实现模型的接口(interface)。所有数据库访问都通过此实现完成。接口(interface)R

inheritance - 组合和多重继承

由于Go使用组合系统而不是(多重)继承,我只是想知道这3个代码片段。Go说他们强制程序员使用组合。A)应该是(几乎)正确的Go代码,B)伪C)伪恕我直言,这三种代码的结果总是相同的,除此之外,B)和C)可以用于更多的东西,而A)迫使你坚持组合?即使您假设B)在类内部没有排序方法,但是-让我们说像A)这样的全局方法并没有真正的区别oOA)代码:interfaceSortLen()Less(i,jint)boolSwap(i,jint)func(qs*Sort)sort()doTheSortingtypeMyDatastruct{varvalueint}func(s*MyData)Len(

inheritance - 从没有将类型转换为继承类型的继承结构执行实际对象方法

packagemainimport("fmt")typeIAinterface{Parse()Name()string}typeAstruct{IA}func(a*A)Name()string{return"AName"}func(a*A)Parse(){fmt.Println("A-"+a.Name())}typeBstruct{A}func(b*B)Name()string{return"BName"}funcmain(){a:=&A{}b:=&B{}a.Parse()b.Parse()//Iwouldliketosee"A-BName"}Playground当我从继承结构执行方法

没有嵌套初始化的golang字段继承

是否可以在没有对象初始化器的情况下进行继承?typeBaseEmployeestruct{LastNamestring}typeEmployeestruct{Namestring,BaseEmployee}现在我有这个:ob:=Employee{FirstName:"Ron"LastName:BaseEmployee{LastName:"Howard"}}但我想实现这样的目标:ob:=Employee{FirstName:"Ron"LastName:"Howard",//可能吗? 最佳答案 根据对您的问题留下的评论,无法将结构字段“

inheritance - 根据 Go 中的接收器类型更改函数行为

我希望函数的行为根据接收者而改变。或者实际上,我想要一种方法能够将不同的接收器作为输入。例如typehandlerfunc(http.ResponseWriter,*http.Request,*Context)typerequireloggedinhandlerhandlerfunc(hhandler)ServeHTTP(whttp.ResponseWriter,r*http.Request){ctx:=setupContext(...)//NEXTLINEISTHEKEYLINEif(reflect.TypeOf(h)==main.requireloggedinhandler){if

inheritance - 用于约束和继承集的接口(interface)

我仍在努力理解Golang接口(interface)。请纠正我并帮助我理解。FrancesCampoy解释说,interface是一组约束。所以在我的例子中,假设我有一个Store接口(interface),它要与约束接口(interface),比如Go中的sortInterface。typeStoreinterface{Earning()intExpense()int}那么如果我想对StoreA、StoreB等其他包实现这个接口(interface)约束怎么办?我想在尝试时收到一条消息:aa:=StoreC{}aa.Add("AAA")//errorsaying`StoreC`doe

object - 是否可以在golang中同时指定带变量的结构和接口(interface)?

我目前正在清理一些golang代码。该代码处理许多以相似方式运行并共享一些相似数据字段的结构。我想知道是否可以同时指定一个公共(public)结构和接口(interface)?像这样的东西:typeFoostruct{BarstringBarTheFoo()string}func(fFoo)FooBar()string{BarTheFoo()returnf.Bar}这意味着从Foo继承的任何其他结构都将在其中包含Bar变量,但它还应该实现自己的BarTheFoo()函数。知道所有Foo导数都有BarTheFoo(),我想在一个函数中使用它,我知道每个Foo导数看起来都一样。在Go中有这

inheritance - Golang : when typecasting child struct to parent struct, 子结构信息丢失?

例如在将父结构嵌入子结构之后:typeParentNodestruct{}typeChildNodestruct{ParentNodeIdentstring}funcParentType()ParentNode{child:=ChildNode{Ident:"node"}fmt.Println(child)returnchild.ParentNode}funcmain(){x:=ParentType()fmt.Println(x.Ident)}这是否会打印出“节点”并返回包含所有信息的包含在父结构中的子结构,这样我们就可以在拥有实际子结构的同时操作表面上的父结构?这样做的想法类似于Ja

inheritance - 具有混合结构类型的 Go 映射和 slice

我正在尝试通过创建一个能够创建投影的简单事件存储来学习如何使用Go。我被困在如何使用包含混合类型结构的slice和映射上。这样做的要点是,我希望开发人员根据需要在各个字段中创建尽可能多的实现IEntity和IEvent的结构。我来自JavaScript/Node.js背景,具有一些C/C++/Java的基本知识,我可能在这里寻找类/继承模式并需要一些帮助来了解如何在Go中获得相同的功能.packagemainimport("sync""time"uuid"github.com/satori/go.uuid")//IEntitydescribesanentity,astructthati

inheritance - 在 Go 中实现 Struct 抽象的正确方法是什么?

我在理解Go的结构继承时遇到了一些问题。我正在尝试对对象类型做一些抽象。请参阅下面的示例代码:packagemaintypeAnimalstruct{}typeDogstruct{AnimalColorstring}typePersonstruct{NamestringAgeintPet*Animal}funcmain(){dog:=&Dog{Color:"brown"}tom:=&Person{Name:"Tom",Age:13,Pet:dog}}这会导致编译错误:cannotusedog(type*Dog)astype*Animalinfieldvalue进行这样的抽象的正确方法是