<Dart基礎(chǔ)>Dart簡(jiǎn)介

Dart基礎(chǔ)系列:

一、簡(jiǎn)介

1、概述:

  • Dart是Google發(fā)布的一門(mén)開(kāi)源編程語(yǔ)言
  • Dart初期目標(biāo)是成為下一代的web開(kāi)發(fā)語(yǔ)言(沒(méi)玩過(guò)JavaScript)
  • Dart目前已可用于全平臺(tái)開(kāi)發(fā)
  • Dart是一門(mén)面向?qū)ο蟮木幊陶Z(yǔ)言

2、應(yīng)用場(chǎng)景:

  • Web開(kāi)發(fā)(有JavaScript)
  • 跨平臺(tái)移動(dòng)應(yīng)用開(kāi)發(fā)(Flutter)
  • 腳本或服務(wù)器開(kāi)發(fā)(有Java、Python)

3、版本:

  • Dart1.x為穩(wěn)定版
  • Dart2.x目前為開(kāi)發(fā)版本(當(dāng)前總結(jié)時(shí)間為2019.03.28
  • 本學(xué)習(xí)系列使用Dart2進(jìn)行總結(jié)

5、Dart語(yǔ)言特性:

  • 所有能夠使用變量引用的都是對(duì)象, 每個(gè)對(duì)象都是一個(gè)類(lèi)的實(shí)例。在 Dart 中 甚至連 數(shù)字numbers、方法Functionnull 都是對(duì)象。所有的對(duì)象都繼承于 Object 類(lèi)。

  • Dart是動(dòng)態(tài)類(lèi)型語(yǔ)言,使用靜態(tài)類(lèi)型可以更清晰的表明你的意圖,并且可以讓靜態(tài)分析工具來(lái)分析你的代碼,會(huì)更安全,但這并不是強(qiáng)制性的。(在調(diào)試代碼的時(shí)候你可能注意到 沒(méi)有指定類(lèi)型的變量的類(lèi)型為 dynamic。)

  • Dart 在運(yùn)行之前會(huì)先解析你的代碼。你可以通過(guò)使用 類(lèi)型或者編譯時(shí)常量來(lái)幫助 Dart 去捕獲異常以及 讓代碼運(yùn)行的更高效。

  • Dart中的類(lèi)和接口是統(tǒng)一的,類(lèi)即接口,你可以繼承一個(gè)類(lèi),也可以實(shí)現(xiàn)一個(gè)類(lèi)(接口),自然也包含了良好的面向?qū)ο蠛筒l(fā)編程的支持。

  • Dart 支持頂級(jí)方法 (例如 main()),同時(shí)還支持在類(lèi)中定義函數(shù)。 (靜態(tài)函數(shù)和實(shí)例函數(shù))。 你還可以在方法中定義方法 (嵌套方法或者局部方法)。

  • 同樣,Dart 還支持頂級(jí)變量,以及 在類(lèi)中定義變量(靜態(tài)變量和實(shí)例變量)。 實(shí)例變量有時(shí)候被稱(chēng)之為域(Fields)或者屬性(Properties)。

  • 和 Java 不同的是,Dart 沒(méi)有 publicprotected、 和 private 關(guān)鍵字。如果一個(gè)標(biāo)識(shí)符以 (_) 開(kāi)頭,則該標(biāo)識(shí)符 在庫(kù)內(nèi)是私有的。詳情請(qǐng)參考: 庫(kù)和可見(jiàn)性

  • 標(biāo)識(shí)符可以以字母或者 _ 下劃線(xiàn)開(kāi)頭,后面可以是 其他字符和數(shù)字的組合。

  • 有時(shí)候 表達(dá)式 expression語(yǔ)句 statement 是有區(qū)別的,所以這種情況我們會(huì)分別指明每種情況。

  • Dart 工具可以指出兩種問(wèn)題:警告和錯(cuò)誤。 警告只是說(shuō)你的代碼可能有問(wèn)題, 但是并不會(huì)阻止你的代碼執(zhí)行。 錯(cuò)誤可以是編譯時(shí)錯(cuò)誤也可以是運(yùn)行時(shí)錯(cuò)誤。遇到編譯時(shí)錯(cuò)誤時(shí),代碼將 無(wú)法執(zhí)行;運(yùn)行時(shí)錯(cuò)誤將會(huì)在運(yùn)行代碼的時(shí)候?qū)е乱粋€(gè) 異常

  • 編程語(yǔ)言并不是孤立存在的,Dart也是這樣,他由語(yǔ)言規(guī)范、虛擬機(jī)、類(lèi)庫(kù)和工具等組成:
    · SDK:SDK 包含 Dart VM、dart2js、Pub、庫(kù)和工具。
    · Dartium:內(nèi)嵌 Dart VM 的 Chromium ,可以在瀏覽器中直接執(zhí)行 dart 代碼。
    · Dart2js:將 Dart 代碼編譯為 JavaScript 的工具。
    · Dart Editor:基于 Eclipse 的全功能 IDE,并包含以上所有工具。支持代碼補(bǔ)全、代碼導(dǎo)航、快速修正、重構(gòu)、調(diào)試等功能。

5、Dart資源:

二、搭建開(kāi)發(fā)環(huán)境

1、SDK安裝:

  • Windows平臺(tái):
    choco install dart-sdk
    
  • Linux平臺(tái):
    sudo apt-get install dart
    
  • Mac平臺(tái):
    brew install dart --devel
    
    Mac平臺(tái)上的安裝說(shuō)明:
    1、Mac上要先安裝homebrew,才能通過(guò)brew來(lái)安裝dart
    //安裝1.x穩(wěn)定版本
    brew tap dart-lang/dart
    brew install dart
    
    //安裝2.x開(kāi)發(fā)版本
    brew install dart --devel
    
    2、驗(yàn)證:
    brew info dart
    
    3、安裝相關(guān)問(wèn)題:
    • Homebrew無(wú)法安裝成功:
      //在終端官網(wǎng)指令
      /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
      
      //提示如下類(lèi)似的錯(cuò)誤:
      error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54
      fatal: The remote end hung up unexpectedly
      fatal: early EOF
      fatal: index-pack failed
      Failed during: git fetch origin master:refs/remotes/origin/master --tags --force
      
      解決辦法:修改 host 配置,在終端中輸入下列指令,打開(kāi)編輯文件,或快捷鍵command+shift+G 打開(kāi)/etc/hosts 文件中,修改添加github.com的映射IP。
      sudo vi /etc/hosts
      
      按 s鍵 進(jìn)入編輯模式,在最下面添加 192.30.253.113 github.com
      編輯host

      再次嘗試終端輸入Homebrew官網(wǎng)指令,即可成功。
      參考:https://www.cnblogs.com/divebombchen/p/10491844.html

2、IDE安裝:

  • IntelliJ iDEA,Androidstudio
  • VS Code
  • Sublime Text、Atom

以Androidstudio為例:
在Pligins中進(jìn)行Dart插件搜索:

Dart插件搜索

三、總結(jié)概述:

在后面的文章主要總結(jié)Dart語(yǔ)法的以下內(nèi)容:

  • 關(guān)鍵字
  • 數(shù)據(jù)類(lèi)型
  • 操作符
  • 控制語(yǔ)句
  • 函數(shù)(方法)
  • 面向?qū)ο?/li>
  • 泛型
  • 庫(kù)和可見(jiàn)性
  • 異常
  • 元數(shù)據(jù)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,431評(píng)論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,637評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 178,555評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,900評(píng)論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,629評(píng)論 6 412
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,976評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,976評(píng)論 3 448
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 43,139評(píng)論 0 290
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,686評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,411評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,641評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,129評(píng)論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,820評(píng)論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 35,233評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 36,567評(píng)論 1 295
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,362評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,604評(píng)論 2 380

推薦閱讀更多精彩內(nèi)容