為您解碼網(wǎng)站建設(shè)的點(diǎn)點(diǎn)滴滴
發(fā)表日期:2018-11 文章編輯:小燈 瀏覽次數(shù):1853
剛開始接觸我經(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開發(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展開標(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ǔ)言,是由谷歌公司開發(fā)的網(wǎng)絡(luò)編程語(yǔ)言。就類似常見的 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 開發(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é)下去。
Flutter 是 Google 推出的移動(dòng) UI 框架,野心路人皆知,但是為什么會(huì)選擇 Dart 呢?
可以參考一下 這篇文章
Why Flutter Uses Dart ?
為什么 Flutter 會(huì)選擇 Dart ?
里面也提到了一部分特性
其實(shí)說(shuō)白了就是,可以快速學(xué)習(xí)(但我不信)、有靈活的 UI、能達(dá)到原生的性能、還可以熱重載。
聽起來(lái)很厲害的樣子,那不管怎么樣還是要學(xué)一下的。畢竟Google 早就看 Java 不爽了,說(shuō)不定 Android 15.0就不打算支持了咋整。雖然你可能不會(huì)做 Android 做到那個(gè)時(shí)候。
由于你可能是做 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ū)別還是挺大的。
是不是就可以不需要方法重載了?
- public、private、protected 沒有了
- 如果一個(gè)標(biāo)識(shí)符以 (_) 開頭,則該標(biāo)識(shí)符 在庫(kù)內(nèi)是私有的,
- 可以不使用new關(guān)鍵字創(chuàng)建對(duì)象
- 沒有float
- int和double是num的子類
- String也可以使用單引號(hào)
- Dart需要一個(gè)布爾值的時(shí)候,只有true對(duì)象才被認(rèn)為true,其他都是false。
is
和is!
當(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)然還有很多自己看文檔吧。
日期:2018-10 瀏覽次數(shù):7551
日期:2018-12 瀏覽次數(shù):4637
日期:2018-07 瀏覽次數(shù):5151
日期:2018-12 瀏覽次數(shù):4426
日期:2018-09 瀏覽次數(shù):5792
日期:2018-12 瀏覽次數(shù):10212
日期:2018-11 瀏覽次數(shù):5121
日期:2018-07 瀏覽次數(shù):4868
日期:2018-05 瀏覽次數(shù):5126
日期:2018-12 瀏覽次數(shù):4597
日期:2018-10 瀏覽次數(shù):5403
日期:2018-12 瀏覽次數(shù):6470
日期:2018-11 瀏覽次數(shù):4724
日期:2018-08 瀏覽次數(shù):4881
日期:2018-11 瀏覽次數(shù):13033
日期:2018-09 瀏覽次數(shù):5893
日期:2018-12 瀏覽次數(shù):5107
日期:2018-10 瀏覽次數(shù):4452
日期:2018-11 瀏覽次數(shù):4810
日期:2018-12 瀏覽次數(shù):6331
日期:2018-06 瀏覽次數(shù):4274
日期:2018-08 瀏覽次數(shù):5719
日期:2018-10 瀏覽次數(shù):4710
日期:2018-12 瀏覽次數(shù):4830
日期:2018-07 瀏覽次數(shù):4640
日期:2018-12 瀏覽次數(shù):4813
日期:2018-06 瀏覽次數(shù):4644
日期:2018-11 瀏覽次數(shù):4629
日期:2018-12 瀏覽次數(shù):4565
日期:2018-12 瀏覽次數(shù):5542
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.