当前位置:首页 > 科技  > 软件

Golang 中函数(Function)和方法(Method)的区别详解

来源: 责编: 时间:2023-11-30 09:30:02 351观看
导读在 Golang 中,大家必然会频繁使用到函数(Function)和方法(Method),但是有的同学可能并没有注意过函数和方法的异同点,函数(Function)和方法(Method)都是用来执行特定任务的代码块,虽然很相似,但也有很大的区别。本文将详细讲解函数

7Y628资讯网——每日最新资讯28at.com

在 Golang 中,大家必然会频繁使用到函数(Function)和方法(Method),但是有的同学可能并没有注意过函数和方法的异同点,函数(Function)和方法(Method)都是用来执行特定任务的代码块,虽然很相似,但也有很大的区别。本文将详细讲解函数和方法的定义以及它们的异同点。7Y628资讯网——每日最新资讯28at.com

函数(Function)

函数是 Golang 程序的基本组成部分之一,是一段独立的代码块,可以被独立地定义和调用。函数的定义以 func 关键字开始,后面跟着函数名、参数列表、返回值类型和函数体。看一个简单的函数定义示例:7Y628资讯网——每日最新资讯28at.com

func add(a b int) int {    return a + b}

函数的调用方式是通过函数名和参数列表完成的。例如:7Y628资讯网——每日最新资讯28at.com

result := add(2, 3)

函数的其他更多特点和类型就不展开讲了,不是本文的重点。本文只简单介绍下函数的基本定义,重点是说明函数和方法的异同点。7Y628资讯网——每日最新资讯28at.com

方法(Method)

方法是与特定类型(结构体类型、函数类型、接口类型等)相关联的函数。是在类型的定义之外定义的,但与该类型紧密关联。方法的定义类似于函数,但在函数名之前会添加一个接收者(receiver),指定方法属于哪个类型。以下是一个简单的方法示例:7Y628资讯网——每日最新资讯28at.com

type Rectangle struct {    width  float64    height float64}// 定义 Area 方法func (r Rectangle) Area() float64 {    return r.width * r.height}

首先定义了一个名为 Rectangle 的结构体类型,然后定义了一个名为 Area 的方法,该方法接收一个 Rectangle 类型的接收者。7Y628资讯网——每日最新资讯28at.com

方法的调用与函数类似,但需要先实例化一个对应的接收者类型的实例,通过这个实例调用的方式来执行。例如:7Y628资讯网——每日最新资讯28at.com

rect := Rectangle{width: 3, height: 4}area := rect.Area()

这段代码首先创建了一个 Rectangle 类型的实例,然后通过这个实例调用了 Area 方法。7Y628资讯网——每日最新资讯28at.com

可以看出,方法是通过接收者与类型绑定的,因此可以在方法内部访问接收者类型的字段和方法。而函数则是独立存在的,没有与特定类型相关联。7Y628资讯网——每日最新资讯28at.com

小结

函数和方法都是用来执行特定任务的代码块,定义和使用都非常类似,主要有两点不同:7Y628资讯网——每日最新资讯28at.com

  • 函数是独立存在的,而方法是与特定类型相关联的;
  • 函数可以直接调用,而方法调用需要通过对应的接收者类型实例。

本文链接:http://www.28at.com/showinfo-26-35328-0.htmlGolang 中函数(Function)和方法(Method)的区别详解

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: DDIA:一文带你了解“两阶段提交”

下一篇: JavaScript中的异步处理你知道哪些方法?你用对了吗?

标签:
  • 热门焦点
  • 2023年Q2用户偏好榜:12+256G版本成新主流

    3月份的性能榜、性价比榜和好评榜之后,就要轮到2023年的第二季度偏好榜了,上半年的新机潮已经过去,最明显的肯定就是大内存和存储的机型了,另外部分中端机也取消了屏幕塑料支架
  • 6月iOS设备好评榜:第一蝉联榜首近一年

    作为安兔兔各种榜单里变化最小的那个,2023年6月的iOS好评榜和上个月相比没有任何排名上的变化,仅仅是部分设备好评率的下降,长年累月的用户评价和逐渐退出市场的老款机器让这
  • 6月安卓手机好评榜:魅族20 Pro蝉联冠军

    性能榜和性价比榜之后,我们来看最后的安卓手机好评榜,数据来源安兔兔评测,收集时间2023年6月1日至6月30日,仅限国内市场。第一名:魅族20 Pro好评率:95%5月份的时候魅族20 Pro就是
  • 谷歌KDD'23工作:如何提升推荐系统Ranking模型训练稳定性

    谷歌在KDD 2023发表了一篇工作,探索了推荐系统ranking模型的训练稳定性问题,分析了造成训练稳定性存在问题的潜在原因,以及现有的一些提升模型稳定性方法的不足,并提出了一种新
  • “又被陈思诚骗了”

    作者|张思齐 出品|众面(ID:ZhongMian_ZM)如今的国产悬疑电影,成了陈思诚的天下。最近大爆电影《消失的她》票房突破30亿断层夺魁暑期档,陈思诚再度风头无两。你可以说陈思诚的
  • 东方甄选单飞:有些鸟注定是关不住的

    文/彭宽鸿编辑/罗卿东方甄选创始人俞敏洪带队的“7天甘肃行”直播活动已在近日顺利收官。成立后一年多时间里,东方甄选要脱离抖音自立门户的传闻不绝于耳,“7
  • 华为发布HarmonyOS 4:更好玩、更流畅、更安全

    在8月4日的华为开发者大会2023(HDC.Together)大会上,HarmonyOS 4正式发布。自2019年发布以来,HarmonyOS一直以用户为中心,经历四年多的发展HarmonyOS已
  • 机构称Q2全球智能手机出货量同比下滑11% 苹果份额依旧第2

    7月20日消息,据外媒报道,研究机构的报告显示,由于需求下滑,今年二季度全球智能手机的出货量,同比下滑了11%,三星、苹果等主要厂商的销量,较去年同期均有下
  • 苹果MacBook Pro 2021测试:仍不支持平滑滚动

    据10月30日9to5 Mac 消息报道,苹果新的 14 英寸和 16 英寸 MacBook Pro 2021 上市后获得了不错的评价,亮点包括行业领先的性能,令人印象深刻的电池续航,精美丰
Top