国产亚洲欧美人成在线,免费视频爱爱太爽了无码,日本免费一区二区三区高清视频 ,国产真实伦对白精彩视频

歡迎您光臨深圳塔燈網(wǎng)絡(luò)科技有限公司!
電話圖標(biāo) 余先生:13699882642

網(wǎng)站百科

為您解碼網(wǎng)站建設(shè)的點(diǎn)點(diǎn)滴滴

Flutter初體驗(yàn) - dart

發(fā)表日期:2018-11 文章編輯:小燈 瀏覽次數(shù):1897

什么是 dart

剛開(kāi)始接觸我經(jīng)常打成 drat或者datr,這玩意到底是什么?

這個(gè)是 Google 七年前(2011年)發(fā)布發(fā)布新網(wǎng)頁(yè)編程語(yǔ)言Dart,是一種基于類編程語(yǔ)言(class-based programming language),在所有瀏覽器都能夠有高性能的運(yùn)行效率,2011年10月10日Google宣布推出Dart的預(yù)覽版。其官網(wǎng)地址是:www.dartlang.org,目前已經(jīng)是Dart2版本了

Google在dartlang.org公布Dart開(kāi)發(fā)工具及源代碼示例等內(nèi)容,同時(shí)也提供相關(guān)虛擬機(jī)平臺(tái)。
目前Dart有兩種方式運(yùn)行:一是在本地的虛擬機(jī)上,二是將Dart代碼轉(zhuǎn)成Javascript,直接在Javascript引擎上運(yùn)行

ECMA已經(jīng)成立技術(shù)委員會(huì)TC52展開(kāi)標(biāo)準(zhǔn)化Dart的工作,同時(shí)由于Dart能夠被編譯成標(biāo)準(zhǔn)的JavaScript,它能夠有效地在所有現(xiàn)代瀏覽器上運(yùn)行。2014年7月,ECMA的第107次全體大會(huì)通過(guò)了第一版Dart語(yǔ)言規(guī)范。

總結(jié)下來(lái)就是 dart 是計(jì)算機(jī)編程語(yǔ)言,是由谷歌公司開(kāi)發(fā)的網(wǎng)絡(luò)編程語(yǔ)言。就類似常見(jiàn)的 Java、C、Swift一樣。并且Dart是面向?qū)ο蟮?、類定義的、單繼承的語(yǔ)言。它的語(yǔ)法類似C語(yǔ)言,可以轉(zhuǎn)譯為JavaScript,支持接口(interfaces)、混入(mixins)、抽象類(abstract classes)、具體化泛型(reified generics)、可選類型(optional typing)和sound type system。

看到這個(gè)答案的時(shí)候我就是這個(gè)表情


本來(lái)你只想簡(jiǎn)單的做個(gè) Android 開(kāi)發(fā)者的,但是你不進(jìn)步就被社會(huì)淘汰,比如現(xiàn)在 Kotlin,weex,react native 加上 Android 本身的生態(tài)混亂,各種適配已經(jīng)讓你在風(fēng)中凌亂,現(xiàn)在又來(lái)一個(gè) dart,能給調(diào)活路嗎?

但是生活不還是得繼續(xù)嗎,學(xué)會(huì)了dart 到時(shí)候又可以拿出去跟小伙伴們吹牛逼了,所以繼續(xù)學(xué)下去。

Dart語(yǔ)言的特性

Flutter 是 Google 推出的移動(dòng) UI 框架,野心路人皆知,但是為什么會(huì)選擇 Dart 呢?
可以參考一下 這篇文章

Why Flutter Uses Dart ?
為什么 Flutter 會(huì)選擇 Dart ?

里面也提到了一部分特性

  • Dart 是 AOT(Ahead Of Time)編譯的,編譯成快速、可預(yù)測(cè)的本地代碼,使 Flutter 幾乎都可以使用 Dart 編寫。這不僅使 Flutter 變得更快,而且?guī)缀跛械臇|西(包括所有的小部件)都可以定制。
  • Dart 也可以 JIT(Just In Time)編譯,開(kāi)發(fā)周期異??欤ぷ髁黝嵏渤R?guī)(包括 Flutter 流行的亞秒級(jí)有狀態(tài)熱重載)。
  • Dart 可以更輕松地創(chuàng)建以 60fps 運(yùn)行的流暢動(dòng)畫和轉(zhuǎn)場(chǎng)。Dart 可以在沒(méi)有鎖的情況下進(jìn)行對(duì)象分配和垃圾回收。就像 JavaScript 一樣,Dart 避免了搶占式調(diào)度和共享內(nèi)存(因而也不需要鎖)。由于 Flutter 應(yīng)用程序被編譯為本地代碼,因此它們不需要在領(lǐng)域之間建立緩慢的橋梁(例如,JavaScript 到本地代碼)。它的啟動(dòng)速度也快得多。
  • Dart 使 Flutter 不需要單獨(dú)的聲明式布局語(yǔ)言,如 JSX 或 XML,或單獨(dú)的可視化界面構(gòu)建器,因?yàn)?Dart 的聲明式編程布局易于閱讀和可視化。所有的布局使用一種語(yǔ)言,聚集在一處,F(xiàn)lutter 很容易提供高級(jí)工具,使布局更簡(jiǎn)單。
  • 開(kāi)發(fā)人員發(fā)現(xiàn) Dart 特別容易學(xué)習(xí),因?yàn)樗哂徐o態(tài)和動(dòng)態(tài)語(yǔ)言用戶都熟悉的特性。

其實(shí)說(shuō)白了就是,可以快速學(xué)習(xí)(但我不信)、有靈活的 UI、能達(dá)到原生的性能、還可以熱重載。

聽(tīng)起來(lái)很厲害的樣子,那不管怎么樣還是要學(xué)一下的。畢竟Google 早就看 Java 不爽了,說(shuō)不定 Android 15.0就不打算支持了咋整。雖然你可能不會(huì)做 Android 做到那個(gè)時(shí)候。

Dart 語(yǔ)法

由于你可能是做 Android 的所以應(yīng)該是對(duì) Java 比較熟悉(即使不是做 Android 的應(yīng)該對(duì) Java 也比較熟悉的我相信你),只需要注意下面強(qiáng)調(diào)的一些語(yǔ)法特性就行,其他的都比較類似,不需要全部都關(guān)注,到時(shí)候?qū)懙臅r(shí)候可以現(xiàn)學(xué)現(xiàn)用。

  • 方法
printHello({String name}) {print("hello, my name is $name"); } 

按著 Java 的這種調(diào)用方式會(huì)直接運(yùn)行不起


改成這樣就行。

 printHello(name:"簡(jiǎn)簡(jiǎn)單單敲代碼"); printHello({String name}) {print("hello, my name is $name"); } 

當(dāng)然還有不一樣的地方,現(xiàn)在方法定義成兩個(gè)參數(shù),之前那樣調(diào)用還是可以的。

 printHello({String name, String age}) {print("hello, my name is $name ,my age is $age"); }printHello(name:"簡(jiǎn)簡(jiǎn)單單敲代碼"); 

最后再寫個(gè)例子你就懂了

 printHello(name:"簡(jiǎn)簡(jiǎn)單單敲代碼"); printHello(age:18); printHello(age:18,name:"簡(jiǎn)簡(jiǎn)單單敲代碼");printHello({String name, String age}) { print("hello, my name is $name ,my age is $age");} 

看看輸出很有意思,跟 Java區(qū)別還是挺大的。

  • 首先入?yún)⑿枰付▍?shù)名
  • 傳參可以少
  • 順序可以不一致
  • 所有函數(shù)都返回一個(gè)值,如果沒(méi)有指定返回值,則 默認(rèn)把語(yǔ)句 return null; 作為函數(shù)的最后一個(gè)語(yǔ)句執(zhí)行。
  • 可以把方法當(dāng)做參數(shù)調(diào)用另一個(gè)方法(羨慕 swift 很久了,也被 iOS 同學(xué)鄙視很久了)。
  • 方法也可以賦值給一個(gè)變量
  • 比Java爽

是不是就可以不需要方法重載了?

  • 在Dart的構(gòu)造中可以沒(méi)有方法體
  • 關(guān)鍵字
  • public、private、protected 沒(méi)有了
  • 如果一個(gè)標(biāo)識(shí)符以 (_) 開(kāi)頭,則該標(biāo)識(shí)符 在庫(kù)內(nèi)是私有的,
  • 可以不使用new關(guān)鍵字創(chuàng)建對(duì)象
  • Dart中變量初始值為null,即使是int類型也是null。
  • 基本類型
  • 沒(méi)有float
  • int和double是num的子類
  • String也可以使用單引號(hào)
  • Dart需要一個(gè)布爾值的時(shí)候,只有true對(duì)象才被認(rèn)為true,其他都是false。
  • 操作符
    這個(gè)比較多隨便舉幾個(gè)例子
  • isis!當(dāng)對(duì)象是相應(yīng)類型時(shí)返回 true/false
  • ??=操作符,如果前操作數(shù)是null類型,則將后操作數(shù)賦值給前操作數(shù);如果前操作數(shù)不等于```null``,則保持前操作數(shù)的值發(fā)生變化。
  • 使用?? 表達(dá)式。
    expr1 ?? expr2
    如果expr1的值為non-null,則返回結(jié)果為expr1;反之則返回expr2。
  • ..級(jí)聯(lián)操作符(額。。。)可以連續(xù)的操作同一對(duì)象,達(dá)到減少中間變量,減少代碼的目的。
    好像很厲害的樣子。

當(dāng)然還有很多自己看文檔吧。


本頁(yè)內(nèi)容由塔燈網(wǎng)絡(luò)科技有限公司通過(guò)網(wǎng)絡(luò)收集編輯所得,所有資料僅供用戶學(xué)習(xí)參考,本站不擁有所有權(quán),如您認(rèn)為本網(wǎng)頁(yè)中由涉嫌抄襲的內(nèi)容,請(qǐng)及時(shí)與我們聯(lián)系,并提供相關(guān)證據(jù),工作人員會(huì)在5工作日內(nèi)聯(lián)系您,一經(jīng)查實(shí),本站立刻刪除侵權(quán)內(nèi)容。本文鏈接:http://jstctz.cn/17698.html
相關(guān)APP開(kāi)發(fā)