Dart語言詳解(一)——詳細介紹


想學Flutter,就請關注這個專欄
Flutter系列(一)——詳細介紹

Flutter系列(二)——與React Native進行對比
html

Flutter系列(三)——環境搭建(Windows)
git

Flutter系列(四)——HelloWorld
github

Dart語言詳解(一)——詳細介紹
web

文檔歸檔:
算法

github.com/yang0range/…


以前,咱們一直在介紹Flutter相信你們對Flutter有一個整體的認識,,那麼如今咱們就要介紹一下Flutter使用的編程語言Dart
編程


Flutter的特性離不開Dart特別是讓不少人都很是喜歡的熱重載功能,很大的緣由就是由於Flutter使用了Dart,那麼就經過這一篇文章瞭解一下,咱們一塊兒瞭解一下什麼是Dart服務器

Dart的歷史

Dart 1.0是於2013年11月14日由谷歌發佈的,由Lars Bak和Kasper Lund建立。它旨在幫助開發人員構建現代的web和移動應用程序。它涵蓋了客戶機、服務器和如今的Flutter移動設備。它提供了一系列工具,包括虛擬機、核心庫和包管理存儲庫。框架

什麼是Dart?

Dart 是由谷歌開發的通用的編程語言,它經常使用於構建web、服務器、桌面和移動應用程序。異步

Dart是一種簡潔、清晰、基於類的面向對象的語言,它是基於JavaScript的可是結構要比JavaScript要多。async

Dart是一種面向對象的、類定義的、垃圾回收語言。它支持接口、mixin、類對象,具備化泛型、靜態類型等。

面向對象

對於面向對象這個概念,相信瞭解Java的同窗對這個概念必定不會陌生。

例如:咱們有個Person Object他有不少特徵和行爲。
這些都是這個Person Object的屬性。
也就是由於有了這些特徵,行爲等等才決定了這我的是誰。

那麼回到Dart當中,全部的都是對象,那麼在就能夠能夠跟進對象的屬性的特徵,方法等等來進行編程。

之因此咱們在這裏又特別強調了一下面向對象的概念,是由於這個概念在Dart語言當中,相當重要!

重要的幾個概念

  1. 在Dart語言中,全部的東西都是對象,不管是變量、數字、函數、null等都是對象,全部的對象都是Object類的子類。

  2. Dart語言是強類型編程,一旦肯定了類型,那麼就不能夠改變變量類型,在編譯時會進行語法減產,可是Dart容許弱類型語言式的編程。

  3. Dart代碼在運行前解析,指定數據類型和編譯時常量,能夠提升運行速度。

  4. Dart語言的統一入口是main函數。

  5. Dart的私有特性是在變量或者函數名前面加上下劃線_。

  6. Dart支持async/await異步處理。

Dart的部分特性

1.Dart是AOT(Ahead Of Time)編譯的,可編譯成快速,可預測的本地代碼。

2.Dart能夠JIT(Just In Time)編譯,開發週期快,爲Flutter熱重載提供基礎。

3.Dart能夠輕鬆建立60fps運行的流暢動畫和轉場。

4.Dart的聲明式編程佈局,易於閱讀和可視化,不須要單獨的聲明式佈局語言,如:XML,JSX。

5.Dart很是易於學習,具備靜態和動態語言,編程人員都熟悉的特性。

Flutter爲何選擇使用Dart?

相信,看過上面的內容的小夥伴,多多少少對於Dart有個簡單的認識了,那麼爲何Flutter爲何採用Dart語言呢?

能夠歸結爲如下的三個方面:

優化內存

Flutter框架使用函數式流,它重度依賴底層內存分配器對小量的、短生命週期內存分配的有效處理,在缺少這種特性的語言中Flutter沒法有效地工做。

開發者生產效率

Flutter的一個主要的價值主張就是節省工程資源,開發者經過同一套代碼庫能夠實現iOS和Android兩個平臺的應用開發工做。使用高產的語言提升了開發效率,也使得Flutter更具吸引力,這對於咱們框架團隊和開發者都異常重要。 構建Flutter主體的語言和咱們提供給用戶的是相同的,因此咱們須要在100k行代碼的基礎上保證高效,而且保證不犧牲framework和widgets對讀者的可讀性。

面向對象

對於Flutter,咱們想要一個可以符合Flutter問題域的語言,即創造視覺用戶體驗,經過面嚮對象語言構建用戶界面框架,業內已經有了幾十年的經驗。固然咱們可使用非面向對象的語言,這將意味着重複發明輪子來解決幾個艱難的問題。此外,大多數的開發者已經擁有面向對象的開發經驗,這使得Flutter開發更加易學。

可預期 高性能

經過Flutter,咱們想要給開發者賦能,以開發出快速流暢的用戶體驗。爲了達到這一點,咱們須要可以在每一個動畫幀運行大量的代碼。這意味着咱們須要一種可以同時提供高效和穩定性能的語言,不能有周期性的停頓,不然會形成掉幀。

高效的使用

熱重載是Flutter最顯著的特性之一,有了這個特性,咱們能夠快速而且輕鬆的進行實現、構建UI、添加屬性和修復Bug。熱重載的加載過程就是經過源代碼文件注入在運行的Dart虛擬機當中來工做。

Dart的內置庫

包名 描述
dart:asynv 異步編程,提供Future,Stream類
dart:collection 集合
dart:convert 不一樣類型的字符編碼解碼
dart:core Dart語言核心功能,內置類型
dart:html 網頁開發用到的庫
dart:io 文件讀寫,IO相關
dart:math 數字常量以及函數,隨機算法等
dart:svg 事件和動畫矢量圖支持

最後

要想學Flutter,先學Dart

經過這篇文章,咱們詳細的介紹了一下Dart語言的「前世此生」。接下來,咱們要着重的介紹一些Dart的語法,只有瞭解了相應的語法啊,才能讀懂和寫出代碼,想要學習的小夥伴,請持續關注吧!

Flutter已是Top20的軟件庫,經過接下來的一系列的文章,但願我和你們一塊兒來學習Flutter,一塊兒進步,一塊兒有所收穫,掌握將來技術主流的主動權!

有什麼好的建議,意見,想法歡迎給我留言!

歡迎關注公共號

關注公衆號會有更多收穫!

動動小手指點贊,收藏,關注一鍵三連走一波吧!

相關文章
相關標籤/搜索