首页 > 解决方案 > 基于动态范围查找值

问题描述

我无法理解动态范围。所以我尝试解决下面的例子:

a=4

func f1(x){
    x=x*a;
    print(x)
}

func f2(y){
    a=2
    a=y-a
    f1(a)
    print(a)
}

main(){
    f2(a)
}

我被要求假设参数是通过引用传递的。

我在想,因为 'y' 和 'a' 指的是同一个内存空间(y 只是 f2 的形式参数),所以在控制移动到 f1 之前,两者的值都将为 0。我对么?相同的逻辑是否适用于 f1?如果不是,正确的方法是什么?

标签: dynamic-scope

解决方案


推荐阅读