05-方法

@

1. 概述

  • 什么是方法
    一个方法就是一个包含了接受者的函数。所有给定类型的方法属于该类型的方法集。

  • 接收者
    接收者类型可以是(除接口外)任何类型。

  • 语法

func (接收者 接收者类型) 方法名(参数 参数类型) [返回值 返回类型]{
/* 函数体*/
}

2. 简单示例

  • 完整代码
package main
import (
"fmt"
)
type Circular struct {
name string //结构体里成员可以定义很多,但不一定用到。
r float64
}
func (circular Circular) CalculateArea() float64 {
return 3.14 * circular.r * circular.r //该方法只用到了结构体的半径这个成员。
}
func main() {
var myCircular Circular
myCircular.r = 10.00
fmt.Println("圆的面积 = ",myCircular.CalculateArea())
}

【诠释】
我们定义了:

  • 一个Circular的结构体类型
  • 一个CalculateArea的方法(其接收者为Circular

使用时:

  • 实例化了一个叫circular的结构体,类型为Circular
  • 调用方法时使用 结构体名.方法名()
  • 结果输出:
圆的面积 = 314

3. 完整示例

我们写一个规范一些的例子

  • 完整代码
package main
import "fmt"
type XiShu struct {
ID int
Name string
Age int
Position string
}
func (xiShu *XiShu)Run()(result string) {
if xiShu.Age >= 18 {
result = xiShu.Name+"是一个成年人"
return result
}else {
result = xiShu.Name+"还没有长大"
return result
}
}
func main () {
liuBei := XiShu{
ID: 0,
Name: "刘备",
Age: 28,
Position: "主公",
}
liuBeiResult := liuBei.Run()
fmt.Println(liuBeiResult)
zhaoYun := XiShu{
ID: 5,
Name: "赵云",
Age: 16,
Position: "五虎上将",
}
zhaoYunResult := zhaoYun.Run()
fmt.Println( zhaoYunResult)
}
  • 结果输出
刘备是一个成年人
赵云还没有长大

posted on   运维开发玄德公  阅读(7)  评论(0编辑  收藏  举报  

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示