2011-10-02 79 views
2

我明白在平原C.前綴和後綴符號之間的差Objective-C方法調用中前綴/後綴增量的區別?

我是,然而,不知道是否施加到目標C法相同的規則調用等

[myObject foo:++i]; 

[myObject foo:i++]; 

或者是「內部C表達式」總是先評估,這兩個方法調用因此產生相同的結果?

回答

4

是,適用同樣的規則。 Obj-c是c的嚴格超集,所以在c中工作的所有東西在Objective-c中的工作方式都完全相同。

++i 

將遞增i方法被調用,以便那些2種方法將不會產生相同的結果之前(假設,或者當然,該結果取決於i的值)。一個在i增加後被調用,另一個在之前被調用。


+0

我剛剛試了一下,它確實是你說的方式。然而,我並不認爲在這種特殊情況下「superset」參數是一個非常好的參數,因爲它可能是Objective-C分別評估C表達式並將最終結果插入到方法調用語句中。 – tajmahal

2

爲什麼沒有真正嘗試,找出的一個超集?

結果正如所預料的前綴版本的方法調用運行之前。後綴在方法調用之後運行。