在處理有狀態小部件的顫動中,我們可以在狀態類中的 2 個位置使用variable_1和宣告變數variable_2。
class StatefulWidget_STATE_class extents State<className>{
final int variable_1 = 2;
@override
Widget build(BuildContext context){
final int variable_2 = 2;
}
}
這兩個宣告之間有什么區別,什么時候應該使用一個而不是另一個?
uj5u.com熱心網友回復:
您所在州的變數保存在您的州中。函式中的變數是函式的區域變數。
這意味著您的函式中的變數將在您的函式完成時被銷毀,并且每次呼叫該函式時都會重新創建和重新初始化。
因此,如果你想讓這個變數在函式呼叫之間保持你的狀態,它需要在函式之外。在這種情況下,在您的狀態類中。
這與效率無關。如果你想要一些只對構建函式的這次運行很重要的東西,請將其設為區域變數。如果您想要即使多次呼叫 build 也能保持其價值的東西(例如每次狀態更改時),您需要將其放入您的狀態類中。
一般來說,將您的變數限制在仍能滿足其目的的最少可見性范圍內,然后讓編譯器擔心效率。變數的可見性越低,編譯器就越容易優化它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/352802.html
