go语言中的return语句

 更新时间:2022年05月24日 17:01:38   作者:清风明月li  
这篇文章主要介绍了go语言中的return语句,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下,希望对你的学习有所帮助

1、基本语法和说明

在 Go 语言 中,跳转控制语句除了有 goto 、break 和 continue 之外,还可以使用 return 。如果 return 语句使用在普通的 函数 中,则表示跳出该函数,不再执行函数中 return 后面的代码,可以理解成终止函数。如果 return 语句使用在 main 函数中,表示终止 main 函数,也就是终止程序的运行。

go函数支持返回多个值,这一点是其他编程语言没有的

func  函数名(形参列表)(返回值类型列表){
​	语句
​	return返回值列表
}
  • 1、如果返回多个值是,在接受时,希望忽略某个返回值,则使用_符号占位忽略。
  • 2、如果返回值只有一个(返回值类型列表)可以不写()

案例演示:

package main
import (
	"fmt"
)
func test(n1 int){
	n1 = n1 + 1
	fmt.Println("test() n1=",n1)
}
func getSum(n1 int,n2 int) int {
	sum := n1 + n2
	fmt.Println("getSum sum=",sum)
	return sum
}
func getSumAndSub(n1 int,n2 int)(int,int){
	sum := n1 + n2
	sub := n1 - n2
	return sum,sub
}
func main(){
	n1 := 10
	test(n1)
	fmt.Println("main() n1=",n1)

	sum := getSum(10,20)
	fmt.Println("main sum = ",sum)

	res1,res2 := getSumAndSub(8,2)
	fmt.Printf("res1=%v res2=%v\n",res1,res2)

	_,res3 := getSumAndSub(3,9)
	fmt.Println("res3=",res3)
}

执行结果:

test() n1= 11
main() n1= 10
getSum sum= 30
main sum =  30
res1=10 res2=6
res3= -6

2、函数的递归调用

2.1基本介绍

一个函数在函数体内有调用了本身,称之为递归调用

2.2递归调用入门

package main
import (
	"fmt"
)
func test(n int){
	if n > 2 {
		n--
		test(n)
	}
	fmt.Println("n=",n)
}
func main() {
	test(4)
}

执行结果:

n= 2
n= 2
n= 3

3、总结

  • 1、执行一个函数时,就创建一个新的受保护的独立空间(新函数栈)
  • 2、函数的局部变量时独立的,不会相互影响。
  • 3、递归必须向退出递归的条件逼近,否则就是无限递归,死循环
  • 4、当一个函数执行完毕,或者遇到return,就会返回,遵守谁调用就将结果返回给谁,同时当函数执行完毕或返回时,改函数本身也会被系统销毁

到此这篇关于go语言中的return语句的文章就介绍到这了,更多相关go语言 return内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Go 错误处理实践总结示例

    Go 错误处理实践总结示例

    这篇文章主要为大家介绍了Go错误处理实践的总结示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Golang精编49面试题汇总(选择题)

    Golang精编49面试题汇总(选择题)

    这篇文章主要介绍了Golang精编49面试题汇总(选择题),本文章内容详细,具有很好的参考价值,希望对大家有所帮助,需要的朋友可以参考下
    2023-01-01
  • GOPROXY:解决go get golang.org/x包失败问题

    GOPROXY:解决go get golang.org/x包失败问题

    这篇文章主要介绍了GOPROXY:解决go get golang.org/x包失败问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • 用Go+WebSocket快速实现一个chat服务

    用Go+WebSocket快速实现一个chat服务

    这篇文章主要介绍了用Go+WebSocket快速实现一个chat服务,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Go语言原子操作atomic的使用

    Go语言原子操作atomic的使用

    本文介绍了Go语言原子操作的使用方法,原子操作是一种无锁的技术,可通过CPU指令实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-10-10
  • Go语言中的内存布局详解

    Go语言中的内存布局详解

    这篇文章主要给大家介绍了Go语言中的内存布局,那么本文中将尝试解释Go如何在内存中构建结构体,以及结构体在字节和比特位方面是什么样子。 有需要的朋友们可以参考借鉴,感兴趣的朋友们下面来跟着小编一起学习学习吧。
    2016-11-11
  • golang判断chan channel是否关闭的方法

    golang判断chan channel是否关闭的方法

    这篇文章主要介绍了golang判断chan channel是否关闭的方法,结合实例形式对比分析了Go语言判断chan没有关闭的后果及关闭的方法,需要的朋友可以参考下
    2016-07-07
  • 详解Golang 中的并发限制与超时控制

    详解Golang 中的并发限制与超时控制

    这篇文章主要介绍了详解Golang 中的并发限制与超时控制,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • 重学Go语言之文件操作详解

    重学Go语言之文件操作详解

    有很多场景都需要对文件进行读取或者写入,比如读取配置文件或者写入日志文件,在Go语言中,操作文件应该算是一件比较简单的事情,我们在这一篇文章中,一起来探究一下
    2023-08-08
  • 一文详解Golang的中间件设计模式

    一文详解Golang的中间件设计模式

    最近在看一些rpc框架的使用原理和源码的时候,对中间件的实现非常感兴趣,所以这篇文章就来和大家聊聊Golang的中间件设计模式,希望对大家有所帮助
    2023-03-03

最新评论