聲明時常見的行為循環外的變數似乎可以工作,這引發了關於外部聲明的必要性的問題。為了深入研究這個問題,我們來看看兩個程式碼範例:
String str;
while ( condition) {
str = calculateStr(); ...
}
while (條件) {
String str = calculateStr(); ...
}
第一個範例,其變數在循環外部聲明,已知可以正常運作。但是,第二個範例(變數是在循環內定義的)通常被標記為危險或不正確。這就提出了一個問題:變數的外部聲明有必要嗎?
這個問題的答案是強調變數應以盡可能小的範圍進行聲明。要理解原因,請考慮範例場景,其中 str 可能不在循環外部使用。如果是這樣,由於編譯錯誤,在循環中聲明它是不可行的。
因此,由於 str 僅存在於循環的上下文中,因此它的最小可能範圍位於該循環內。因此,應該相應地聲明它。
此規則唯一可能的例外是在最大化效能至關重要的情況下,到最後一個時脈週期。在這種情況下,可以考慮在外部作用域中實例化一個物件並重複使用它,而不是在每次循環迭代中重新建立它。
但是,在提供的範例中,由於字串中的字串的不變性,這種最佳化是不相關的。爪哇。每次循環迭代都需要建立並隨後處理一個新的 str 實例,從而消除透過外部聲明進行的任何潛在最佳化。
總而言之,在盡可能小的範圍內宣告變數是正確的做法。雖然擠出每個時脈週期對於效能優化來說可能很誘人,但更明智的做法是專注於程式碼品質並遵循正確的指導方針。基準測試可以揭示演算法最佳化的領域,從而消除大量程式碼調整和修改的需要。
以上是在程式設計中變數是否應該始終在循環外聲明?的詳細內容。更多資訊請關注PHP中文網其他相關文章!