[英]Objective-C — different versions of the same library results in name collisions
[英](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.