Go核心开发学习笔记(十三) !—— 函数调用机制,递归

本文探讨了Go语言中的函数调用机制,包括栈区、堆区和代码区的概念,以及逃逸分析。重点讲解了函数的递归调用,并通过递归实现斐波那契数列和猴子吃桃子问题。此外,还讨论了Go函数的多个注意事项,如形参和返回值列表、值传递与引用传递、函数作为变量和参数等特性。
摘要由CSDN通过智能技术生成

方法: 完成一个功能的代码或集合。
大致过程:给方法必要的输入,方法返回结果。

函数调用机制的底层分析:
栈区:基本数据类型一般分配到栈区,编译器存在一个逃逸分析。
堆区:引用数据类型一般分配到堆区,编译器存在一个逃逸分析。
代码区:存放代码的内存区域

通过一个调用过程,深刻理解函数调用都做了什么:

package main
import "fmt"

func calcu (a float64,b float64) (float64,float64) {
	
	plus := a + b
	minus := a - b
	return plus,minus
}
func main() {
	/*
	第一步 main是一切程序的入口,首先现在内存栈区开辟一块空间存储变量
	      a=5 b=3 都是基本变量,一般存在内存栈区
	 */
	var (
		a float64 = 5
		b float64 = 3
	)
	/*
	第二步 调用函数,将两个变量的值传入函数中,系统在内存栈区开辟另一块儿空间放入被调用函数,
	       这个地方的函数的内存与main程序的内存空间完全是两个用户空间,这也就是说为何被调用函数如果
	       没有返回值,就是两个完全不相干的函数调用,也就失去了调用意义,调用结束返回后,return结束
	       被调用函数,并且返回值,编译器就会将这部分垃圾回收,回到main()中继续走完
	 */
	max, min := ca
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目:使用AngularJs编写的简单 益智游戏(附源代码)  这是一个简单的 javascript 项目。这是一个拼图游戏,也包含一个填字游戏。这个游戏玩起来很棒。有两个不同的版本可以玩这个游戏。你也可以玩填字游戏。 关于游戏 这款游戏的玩法很简单。如上所述,它包含拼图和填字游戏。您可以通过移动图像来玩滑动拼图。您还可以选择要在滑动面板中拥有的列数和网格数。 另一个是填字游戏。在这里你只需要找到浏览器左侧提到的那些单词。 要运行此游戏,您需要在系统上安装浏览器。下载并在代码编辑器中打开此项目。然后有一个 index.html 文件可供您修改。在命令提示符中运行该文件,或者您可以直接运行索引文件。使用 Google Chrome 或 FireFox 可获得更好的用户体验。此外,这是一款多人游戏,双方玩家都是人类。 这个游戏包含很多 JavaScript 验证。这个游戏很有趣,如果你能用一点 CSS 修改它,那就更好了。 总的来说,这个项目使用了很多 javascript 和 javascript 库。如果你可以添加一些具有不同颜色选项的级别,那么你一定可以利用其库来提高你的 javascript 技能。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值