golang实现类

楚天乐 263 0 条

介绍

类,熟悉java c++ php python等语言中任意一门的人都不会陌生。我假设不行看到这篇文章的人,和我一样有其他高级语言经验。所以这里不废话什么是class。

golang实现

golang并没有提供class关键字来定义类。但是他有struct,并且我们可以给struct添加方法。这样子我们也可以达到实现类功能的目的。

我们来实现一个带有加(add)减(minus)乘(multiple)除(divide)四种操作的Calculator类吧。

首先我们定义一个Calculator接口

package main

import "fmt"

// 定义计算器的操作
type Calculator interface {
    add(x int, y int) int
    minus(x int, y int) int
    multiply(x int, y int) int
    divide(x int, y int) float32
}

// 定义TestCalculator"类"
type TestCalculator struct{
}

func (consoleCalculator TestCalculator) add(x int, y int) int {
    return x + y
}
func (consoleCalculator TestCalculator) minus(x int, y int) int {
    return x - y
}
func (consoleCalculator TestCalculator) multiply(x int, y int) int {
    return x * y
}
func (consoleCalculator TestCalculator) divide(x int, y int) float32 {
    // 我还不知道golang如何抛出异常。。。多么痛的领悟
    if y == 0 {
        fmt.Println("除零错误")
    }
    return float32(x) / float32(y)
}

func main(){
    var calculator Calculator

    calculator = new (TestCalculator)
    fmt.Println(calculator.add(5,2))
    fmt.Println(calculator.minus(5,2))
    fmt.Println(calculator.multiply(5,2))
    fmt.Println(calculator.divide(5,2))

}

非常直截了当,也没有什么好多说的。只是这个struct加函数的用法,写起来觉得特别不舒服



发表我的评论
'
昵称 (必填)
邮箱 (必填)
网址