0
点赞
收藏
分享

微信扫一扫

go语言学习-return

1、基本语法和说明

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
5.13、函数的递归调用
1、基本介绍:

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

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,就会返回,遵守谁调用就将结果返回给谁,同时当函数执行完毕或返回时,改函数本身也会被系统销毁

举报

相关推荐

0 条评论