我有一個代碼性能和可讀性上反覆功能
void Foo()
{
auto index = currentIndex();
if (index.isValid())
index.doSomething();
}
另一種選擇
void Foo()
{
if (currentIndex().isValid())
currentIndex().doSomething();
}
第二個對我來說更具有可讀性。但它的表現如何? currentIndex()
在當前流行的編譯器中計算兩次嗎?如果currentIndex()
是一個佔用CPU時間的大函數,編譯器是否會優化第二個作爲第一個?
變量名'index'很清楚.. – Rapptz
'currentIndex()'返回什麼?第一個和第二個例子看起來不一樣。 –
是的,currentIndex()將在第二個解決方案中調用兩次 –