05-方法
1.01-包引用和引用顺序2.02-运算符号、标识符、注释、关键字3.03-变量和作用域4.02-常量(const)5.03-数组(array)6.04-切片(slice)7.05-map8.06-指针(pointer)9.07-通道(channel)10.08-结构体(struct)11.01-if语句12.02-for循环13.04-select语句14.03-switch语句15.make()、new()16.copy(切片间复制)17.append(增加切片成员)18.delete(删除map的成员)19.panic&recover20.03-匿名函数和闭包21.01-函数简单使用22.02-形参和实参23.04-递归函数
24.05-方法
25.06-接口(interface)26.01-并发27.02-携程通讯28.03-携程同步29.01-连接和建表30.02-创建数据31.03-基本查询32.04-高级查询33.05-初始化34.06-更新数据35.07-删除数据36.08 事务37.根据操作系统程序自动选择不同常量38.golang字串的base64编码解码39.golang数据类型转换40.golang 时间/时间戳的获取和转换@
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) }
- 结果输出
刘备是一个成年人 赵云还没有长大
分类:
go语言开发 / go基础
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具