前幾日看到一個博文,說某公司面試,問++i/i++有何不同。這個差異吾是知道的:
int i=5;
int a = i++; //a=5
int j=5;
int b = ++j; //b=6
吾知道這個差異,吾代碼中會絕對避免這個寫法。爲什麼呢?有幾個原因:
- 閱讀困難,給維護帶來很大的麻煩。沒錯,這顯得汝有水平,維護起來並不方便。
- 關鍵:這種差異本身,並不可靠。在編譯器甲,可能是5、6;編譯器乙,執行結果可能就是5、5。一旦發生錯誤,幾乎不可能查到原因。
所以,吾絕對避免這種詭異寫法。使用最簡單、易懂的語句完成工作,是吾常常得意的事情。正確代碼寫法:
int i=5;
int a = i; //a=5
i++;
int j=5;
j++;
int b = j; //b=6
在某些特殊場合,比如對於性能有高要求,那麼易懂問題就不需要考慮。因爲達不到這個程度的程序員,也不會維護這些代碼。
這個是吾親身遇到的編譯器事情: