簡體   English   中英

(objective-C)我可以在2個不同的函數中使用相同的變量名,但是在同一個文件中嗎?

[英](objective-C) Can i use the same variable name in 2 different functions, but in the same file?

也許這是隱含的,但我對它有疑問。

我有一個.m文件,它有兩個不同的函數(或方法,因為它們也被稱為); 但是這兩個函數都使用我在每個函數內部聲明的變量。

為了清楚起見,我喜歡使用相同的名稱; 根據我的理解; 兩個函數具有相同的變量名稱應該沒有問題,因為它們將指向內存中的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....

}

是的,當然了。

您甚至可以在同一方法中的不同范圍內使用相同的變量名稱。

樣品:

-(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!
}

我無意中做了幾次。 可能導致的錯誤可能是a中的痛苦,因為它們很難被看到。

只是為了增加一些混亂:所有在同一個類中,你可能有一個實例變量pressure ,它會隱藏全局變量pressure ,如果有的話。 名為pressure的方法可以具有隱藏實例變量的參數pressure 然后,您可以在該方法中的不同范圍內聲明幾個變量pressure 所有這些都會隱藏他們在封閉范圍內的個別命名對應物。 如果你真的想讓它混淆,那就添加一個名為pressure的屬性。 所有這些都可能正常工作,直到你開始失去控制或幾周后重新訪問相同的代碼。

編輯:方法pressure顯然會與財產pressure的吸氣劑發生沖突。 意思是,它可以工作,但編譯器會將該方法作為getter,因為它返回appropritate類型的對象。 或者。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM