递归的困惑,求指导

huhui5008 · · 672 次点击
为什么当a==1的时候,要跳到上一层的a值呢?
#2
更多评论
压根不是一个a啊,aaa的参数a是上一层函数的a-1
#1
当a=2时,`b= aaa(a-1)`,此时a=2没问题吧?不管aaa里面发生什么,不会改变a的值 2。 在这个aaa函数中,传入的参数时a-1=1,对该函数中的变量a,`a == 1`成立,`return 1`,所以`b= aaa(a-1)`得到的是`b = 1`,a的值没变 是2。 所以 不存在a的值变了,因为两个函数中的a压根就不是同一个,你换个参数意思也一样 ```go a = 2 b = aaa(a-1) func aaa(b int) int{ if b == 1{ return 1 } } ```
#3