8.golang 创建方法

package main

import (
"fmt"
"math"
)

type Movie struct {
Name string
Rating float32
}

/*
创建方法: 创建方法 跟创建函数差不多,只是在func后面多了一个接受者,这个接受者可以被结构体引用,形成一种结构体的方法集
并且使任何关联到结构体的方法,都能使用他拥有的方法集中的方法,这样就能形成封装功能和创建库代码的有效方法
通过这种方法,我们可以理解成 一个类下面(golang中的结构体),所有方法(关联到这个结构体的所有方法)
接收者参数声明为指针引用 和 值引用的差别(就是在接受者中,是否用* 星号符): 如果需要修改原始结构体,就使用指针;如果需要操作结构体,但不想修改原始结构体,就是用值
方法声明方式: type ... struct{}

  在函数中添加接受者就成了方法了,接受者指向某个结构体(用 * [struct]),那么就是这个结构体的方法。


*/

type Sphere struct {
Radius float64
}

func (s *Sphere) jiOne() float64 { //圆的面积
return float64(4)*math.Pi + (s.Radius * s.Radius)
}

func (s *Sphere) jiTwo() float64 { //圆的体积
radiusCubed := s.Radius * s.Radius * s.Radius
return (float64(4)/float64(3))*math.Pi + radiusCubed
}

func main() {
s := Sphere{Radius: 5}
fmt.Println(s.jiOne())
fmt.Println(s.jiTwo())
}

原文地址:https://www.cnblogs.com/iifeng/p/11488921.html