为了进一步理解,我们需要多介绍一点编译器的术语.编译器在编译过程的第二步中生成了代码,引擎执行它时,会通过查找变量 a 来判断它是否已声明过.查找的过程由作用域进行协助,但是引擎执行怎样的查找,会影响最终的查找结果.在我们的例子中,引擎会为变量 a 进行 LHS 查询.另外一个查找的类型叫作 RHS.我打赌你一定能猜到“L”和“R”的含义,它们分别代表左侧和右侧.什么东西的左侧和右侧?是一个赋值操作的左侧和右侧.换句话说,当变量出现在赋值操作的左侧时进行 LHS 查询,出现在右侧时进行 RHS…