go中函数的调用机制

一 图解函数调用

程序员调用方法:给方法必要的输入,方法返回结果。

二 函数调用过程实战

1 传入一个数+1

说明

a 在调用一个函数时,会给该函数分配一个新的空间,编译器会通过自身的处理让这个新的空间和其它的栈的空间区分开来。

b 在每个函数对应的栈中,数据空间是独立的,不会混淆。

c 当一个函数调用完毕后,程序会销毁这个函数对应的栈空间。

2 计算两个数,并返回结果

代码

package main

import (
   "fmt"
)

// 一个函数 getSum
func getSum(n1 int, n2 int) int {
   sum := n1 + n2
   fmt.Println("getSum sum = ", sum) // 30
   //当函数有return语句时,就是将结果返回给调用者
   //即谁调用我,就返回给谁
   return sum
}

func main() {
   sum := getSum(10, 20)
   fmt.Println("main sum = ", sum) // 30
}

测试

getSum sum =  30
main sum =  30

三 return 语句

1 基本语法

func 函数名 (形参列表) (返回值列表){
    执行语句...
    return 返回值列表
}

2 说明

a 如果返回多个值,在接收时,希望忽略某个返回值,则使用_符号表示占位忽略。

b 如果返回值只有一个,(返回值列表)可以不写()。

四 实战

1 需求

计算两个数的和和差,并返回结果。

2 代码

package main

import "fmt"

// 计算两个数的和和差,并返回结果
func getSumAndSub(n1 int, n2 int) (int, int) {
   sum := n1 + n2
   sub := n1 - n2
   return sum, sub
}

func main() {
   //调用getSumAndSub
   res1, res2 := getSumAndSub(1, 2) //res1 = 3 res2 = -1
   fmt.Printf("res1=%v res2=%v\n", res1, res2)
   //希望忽略某个返回值,则使用 _ 符号表示占位忽略
   _, res3 := getSumAndSub(3, 9)
   fmt.Println("res3=", res3)
}

3 测试

res1=3 res2=-1
res3= -6

4 说明

希望忽略某个返回值,则使用 _ 符号表示占位忽略。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值