正在加载中...

go语言中的面向对象

  • 编辑时间: 2022-09-19 22:04:27
  • 浏览量: 730
  • 作者: makerroot
  • 所有标签: go
  • 文章分类: go后端
  • 评论数: 暂无评论

方法, 类, 方法继承, 接口, 多态的简单实现

package main

import "fmt"

type BaseNum struct {
    num1 int
    num2 int
}

type Add struct {
    BaseNum
}

type Sub struct {
    BaseNum
}

func (a *Add) Opt() int {
    return a.num1 + a.num2

}

func (s *Sub) Opt() int {
    return s.num1 - s.num2
}

type Opter interface {
    Opt() int
}

func Multistate(o Opter) int {
    value := o.Opt()
    return value
}

type Factory struct {
}

func (f *Factory) FacMethod(a, b int, operator string) (value int) {
    var i Opter
    switch operator {
    case "+":
        var AddNum Add = Add{BaseNum{a, b}}
        i = &AddNum
    case "-":
        var SubNum Sub = Sub{BaseNum{a, b}}
        i = &SubNum

    }
    value = Multistate(i)
    return
}

func main() {
    var a Factory
    value := a.FacMethod(20, 3, "+")
    fmt.Print(value)

}

上一篇: 实现使用字符串函数名,调用函数

下一篇: 海外便宜的云服务器推荐

提交评论

评论列表

暂无评论

关于本站

1.记录生活

2.建站时间2019-04-05

3.主要技术Django2、Bootstrap...