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是使用父類構造函數對成員變量進行初始化:
推薦閱讀
- Practical Data Analysis Cookbook
- C# 7 and .NET Core Cookbook
- Visual FoxPro程序設計教程(第3版)
- Clojure for Domain:specific Languages
- aelf區塊鏈應用架構指南
- Java軟件開發基礎
- Spring Boot企業級項目開發實戰
- 編程菜鳥學Python數據分析
- 零基礎學Kotlin之Android項目開發實戰
- C++ Application Development with Code:Blocks
- Android Studio Cookbook
- 分布式架構原理與實踐
- R語言:邁向大數據之路
- Build Your Own PaaS with Docker
- ASP.NET 3.5系統開發精髓