【Go自学第六节】Go中的函数与方法

本文探讨Go语言中函数与方法的区别,包括Go函数与C语言函数的差异、匿名函数、闭包的定义和使用,以及方法的概念,通过示例解释了方法如何赋予结构体行为。总结了函数和方法在定义、调用、重名等方面的异同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Go语言中,函数和方法不太一样,有明确的概念区分。其他语言中,比如Java,一般来说,函数就是方法,方法就是函数。所以本节我旨在帮助大家理解Go语言中函数和方法的异同。

开始之前我们先系统学习一下函数和方法。


函数

Go语言和C语言一样也有函数的概念, Go语言中函数除了定义格式和不用声明以外,其它方面几乎和C语言一模一样

//函数定义
func 函数名称(形参列表)(返回值列表){
    函数体;
}

//无参数无返回值函数
func say()  {
 fmt.Println("Hello World!!!")
}

//参数无返回值函数
func say(name string)  {
 fmt.Println("Hello ", name)
}

//无参数有返回值函数
func sum() int { // 只有一个返回值时,返回值列表的()可以省略
 return 1 + 1
}

//有参数有返回值函数
func sum(a int, b int) int {
 return a + b
}

 Go函数与C语言函数的区别

//Go语言中可以给函数的返回值指定名称
// 给返回值指定了一个名称叫做res, return时会自动将函数体内部res作为返回值
// 其实本质就是提前定义了一个局部变量res, 在函数体中使用的res就是这个局部变量,返回的也是这个局部变量
func sum() (res int) { 
 res = 1 + 1
 return
}

//Go语言中的函数允许有多个返回值函数
func calculate(a int, b int) (sum int, sub int) {
 sum = a + b
 sub = a - b
 return
}

//相邻同类型形参OR返回值类型可以合并, 可以将数据类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Weber77

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值