官术网_书友最值得收藏!

1.2.1 斷點和放行

先簡單介紹一下Debug,為了形象地表達,筆者比較喜歡打比方。斷點就相當于哨兵,他在某行看守,一旦程序運行到這里,他馬上吹哨喊“停”,然后程序就乖乖地一動不動。之后由五位放行官“下、藍、紅、出、至”來放行程序。在面板中圖標依次為,說明如下:

下:執行完本行,停在下一行。

藍:如有可進入的方法,則進入(非系統)。

紅:如有可進入的方法,則進入(含系統)。

出:直至當前所處的方法出棧。

至:直至運行到當前光標位。

例如,在MyHomePage實例化處加上斷點(哨兵),Debug模式運行后程序會停在這里,并且將此行高亮顯示,模擬器的界面一片空白;

為了探究MyHomePage構造函數的運行情況,此時可以使用藍放行官(簡稱“藍放”)。下面是兩次藍放的情況,第一次進入構造方法,此時成員變量title并未被賦值。第二次執行沒有任何跳轉,但title被賦值了。

這說明Dart語法對于{this.屬性}在構造時會根據入參進行自動賦值。而且這種形式支持在使用時通過屬性名進行傳參,如MyHomePage(屬性名:入參)。這是Dart的一顆很甜的語法糖,對比Java、C++等對成員變量的初始化,可謂優雅很多。

另外一點,super(key:key)是什么?繼續藍放會走入父類的構造,很明顯是將key成員變量交給父類,即StatefulWidget,之后StatefulWidget傳給了Widget,Widget進行key的接收。這里的super是使用父類構造函數對成員變量進行初始化:

主站蜘蛛池模板: 新建县| 丰城市| 焉耆| 天水市| 德昌县| 丹棱县| 郸城县| 寻乌县| 丽水市| 霍林郭勒市| 通化县| 山东| 容城县| 南投市| 内丘县| 峨山| 尉犁县| 萨嘎县| 信宜市| 开鲁县| 鹤峰县| 珲春市| 富锦市| 彩票| 乌审旗| 龙南县| 宜丰县| 阳朔县| 汤原县| 泰安市| 阳西县| 拜城县| 新源县| 巴林左旗| 白银市| 龙山县| 旬阳县| 淳化县| 巴南区| 弥勒县| 印江|