Go Lang是无继承层次的轻量级面向对象编程范式。Go Lang中的接口与实现之间完全是非侵入式的。这种接口实现方式很值得称赞。不但如此,在Go Lang中只有类型嵌入而没有类型继承。这规避了很多与继承有关的复杂问题,也使类型层次更加简单化了。
在Go Lang里面,只存在嵌入而不存在继承的概念。Go Lang并不提供典型的类型驱动的子类化方法,但是靠这种嵌入的方式实现了同样的效果。
下面上代码:
基础类base.go
package controllers//基础类,我准备把所有的权限判断放到这个类里面import ( "github.com/astaxie/beego")type BaseController struct { beego.Controller ControllerName string ActionName string TplNames string}
//直接在页面输出字符串
func (this *BaseController) Html(str string) { this.Ctx.WriteString(str) //self.GetControllerAndAction()}
继承类,index.go
package controllerstype IndexController struct { BaseController}func (this *IndexController) Get() { this.Html("aaaaaaa")}