这意味着过去的代码看起来像这样,例如:
// Somewhere else in the source:
…someFunction(2)…
…
…x = 2;…
…someFunction(x)…
…
// Et cetera, the point being that whenever someFunction is called, its argument always has the value 2.
// The definition of someFunction:
void someFunction(Int32 someVariable)
{
foo(someVariable*3);
y = someVariable*7 - 4;
bar(y);
…
}
作者将其更改为:
// The definition of someFunction:
void someFunction(Int32 someVariable)
{
(void) someVariable;
foo(6);
y = 10;
bar(y);
…
}
所以,发生的事情是:
- 在“someFunction”中出现“someVariable”的所有地方,作者都将其替换为“2”。
- 然后作者减少了表达式,让“someVariable*3”变成了“2*3”,然后变成了“6”。这解释了为什么在 someFunction 中看不到“someVariable”以及为什么在 someFunction 中看不到“2”。
换句话说,someFunction 的代码现在的行为方式与原始代码在 someVariable 为 2 时的行为方式相同。您将 someFunction 的主体描述为“与 someVariable 无关的某些处理”,但实际上,它是使用2 对于 someVariable 的变量。someVariable 在函数中扮演的任何角色都已因编辑而丢失,但是,只要 someVariable 为 2,该代码的行为可能与旧代码一样。