文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

golang形参要求是什么

2023-07-04 20:26

关注

本文小编为大家详细介绍“golang形参要求是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“golang形参要求是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

Go语言中函数的参数就是形参,它是局部变量,其值由参数调用者提供;如果相邻的几个形参的类型相同,那么可以省略前几个参数的类型,只需要写最后一个参数的类型即可,语法“func funcName(形参1, 形参2 参数类型1, 形参3,形参4 参数类型2, ...)(返回值列表){//执行语句...return 返回值列表}”。

Go语言函数参数

Go 语言 中 函数 的参数,为形式参数,即如果我们通过传值的方式,传递的参数其实是实际参数的一份拷贝,而不是真正的实际参数。形参是局部变量,其值由参数调用者提供。

在 Go 语言中,如果相邻的几个函数参数的类型相同,那么我们可以省略前几个参数的类型,只需要写最后一个参数的类型即可。

func funcName(param1, param2 paramType1, param3, param4 paramType2, ...)(returnVal returnType){// 执行语句...return 返回值列表}

  说明

案例

用函数,实现寻找两个数的最大公约数

package mainimport ("fmt")func gcdNormal(x, y int) int {var n intif x > y {n = y} else {n = x}for i := n; i >= 1; i-- {if x%i == 0 && y%i == 0 {return i}}return 1}func main() {//用函数,实现计算两个数的最大公约数gcd := gcdNormal(10,20)fmt.Println("Gcd =", gcd)}

程序运行后,控制台输出如下:

golang形参要求是什么

我们定义了一个函数 gcdNormal,传入两个 int 类型 的参数 a 和 b,函数返回一个 int 类型的 变量。该函数使用了穷举法实现了求参数 a 和 参数 b 的最大公约数的逻辑,因为参数 a 和参数 b 的类型都是 int 类型,因此我们省略了参数 a 后面的类型,直接写在参数 b 后面。

在 main() 函数里面,我们调用了 gcdNormal 函数,并传入了两个参数 10 和 20,使用 gcd 变量来接受 gcdNormal 函数返回的值,最后使用 Println() 函数打印最后的结果。

函数参数是形参

Go 语言的函数参数是形参,对函数参数的修改不会影响实参

package mainimport ("fmt")func change(a int) {a += 100}func main() {//Go语言的函数参数是函数参数,对函数参数的修改不会影响实参a := 10change(a)fmt.Println("a =", a)}

程序运行后,控制台输出如下:

golang形参要求是什么

我们定义了一个函数 change(),传入一个 int 类型的参数 a,在函数体中,对该函数的参数实现加 100 的操作。

在 main() 函数中,调用该函数,并传入变量 a,执行完 change() 函数之后,我们再次打印变量 a 的值,发现 a 的值还是10,并不是加 100 之后的 110。

因为在 Go语言中,函数的参数是形式参数,即是实参的拷贝,所以修改的不是实参,所以 a 的值不会改变。

通过函数参数修改实参

Go 语言的函数要通过函数参数修改实参,必须要使用指针类型

package mainimport ("fmt")func change(a *int) {*a += 100}func main() {//Go语言的函数要通过函数参数修改实参,必须要使用指针类型a := 10change(&a)fmt.Println("a =", a)}

golang形参要求是什么

我们定义了一个函数 change(),传入一个 int 指针类型的参数 a,在函数体中,对该函数的参数实现加 100 的操作。

在 main() 函数中,调用该函数,并传入变量 a 的地址,执行完 change() 函数之后,我们再次打印变量 a 的值,发现 a 的值被增加了 100 变成了 110。

这里的 change() 函数因为传入的是 a 的地址,接着我们在 change() 函数里面通过指针运算符,获取 a 的地址所指向的变量,再修改其值,其实修改的就是变量 a 本身的值。

读到这里,这篇“golang形参要求是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯