![递归问题.png](https://static.studygolang.com/181129/1fa33f1bae2eac477c0d73ea93119cd5.png)
dbg模式下观测到,18行跳到21行,a的数值不一样,这是怎么原理?
新手不解,求骂求指导!
当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
更多评论