介绍
类,熟悉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加函数的用法,写起来觉得特别不舒服