2012-01-17 59 views
2

一行調用最近,我看到了下面一行:幾個逗號分隔在Objective-C

[someObject release], someObject = nil; 

爲什麼這項工作?爲什麼以及在哪種情況下可能會有幾行呼叫由,分隔一行? (;

回答

3

目標C是C的超集,並,操作者在C.它的計算結果爲在該鏈中的最後一個表達式,並創建一個sequence point

分號;不能在表達式中使用,因爲它不是運算符。

您可能已經看到在工作中,運營商在涉及for循環更常見的情況:

int i = 0, j = 0; 
for (; i < 200 ; i++, j += 3) { // This is one of the more typical uses of ',' 
} 
1

comma operator評估第一個操作數和丟棄結果,然後計算第二和返回它的值。第一個沒有返回值,第二個返回值爲nil