目录
  • 1、基本语法和说明
  • 2、函数的递归调用
    • 2.1基本介绍
    • 2.2递归调用入门
  • 3、总结

    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,就会返回,遵守谁调用就将结果返回给谁,同时当函数执行完毕或返回时,改函数本身也会被系统销毁
    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。