3

也许这是隐含的,但我对此表示怀疑。

我有一个 .m 文件,它有 2 个不同的功能(或方法,因为它们也被称为);但是这两个函数都使用了我在每个函数中本地声明的变量。

为了清楚起见,我喜欢使用相同的名称;据我了解;让两个函数具有相同的变量名应该没有问题,因为它们将指向内存中的 2 个不同的指针位置,所以没关系。

我是否遗漏了什么或者可以安全地做我正在做的事情?我应该使用不同的名称吗?我应该在本地使用全局并相应地更改它吗?

-(int) doThis
{

    int pressure = 1;

    ...do the calculations and return the results...

}

-(int) doThat
{

    int pressure = 5;
    ...do the calculations and return the results....

}
4

1 回答 1

8

是的,当然了。

您甚至可以在同一方法中的不同范围内使用相同的变量名。

样本:

-(int) doThat
{

    int pressure = 5;

    for (int i = 0, i < pressure, i++) {
        int pressure = 10; // This is another variable!!! 
        pressure = 15;
        //Whatever
    }

    return pressure; //This would return 5!
}

我无意中做了几次。可能导致的错误可能是一个痛苦的......因为它们很难看到。

只是为了增加一些混乱:所有在同一个类中,你可以有一个实例变量pressure,它会隐藏一个全局变量pressure,如果有的话。命名的方法pressure可能有一个pressure隐藏实例变量的参数。pressure然后,您可以在该方法的不同范围内声明多个变量。它们都将在封闭范围内隐藏各自命名的对应物。如果你真的想让它变得混乱,那么添加一个名为 pressure 的属性。在你开始失去控制或几周后重新访问相同的代码之前,这一切甚至都可以正常工作。

编辑:该方法pressure显然会与 property 的 getter 冲突pressure。意思是,它会起作用,但编译器会将该方法作为 getter,因为它返回适当类型的对象。或者。

于 2013-05-31T21:43:16.467 回答