1. 程式人生 > >dart實用語法總結(持續更新中)

dart實用語法總結(持續更新中)

這是一篇總結dart入門文章中對一些覺得驚豔且實用的語法記錄,初學,有的地方理解不對,勿噴。

_變數名  一下劃線開始的變數名錶示私有的

1:string  

多行書寫一行顯示:當字串太長時可以使用如下方式,這種書寫方式最終顯示還會是一行。

var s1 ='String ''concatenation'" works even over line breaks.";

多行書寫多行顯示,這種方式驗證遵守換行,將顯示

var s1 ='''
You can create
multi-line strings like this one.
''';

顯示 \n \t等 ,如下將顯示一行,去掉r將顯示兩行

var s 
=r"In a raw string, even \n isn't special.";
字串中填入變數常量,hello的值為 hello world
const user="hello";const hello ='$user world';

2:map 

如下等同於 new map(),dart2.0中 

Note: You might expect to see new Map() instead of just Map(). As of Dart 2, the new keyword is optional(可選擇的). For details, see Using constructors.

var
gifts ={// Key: Value'first':'partridge','second':'turtledoves','fifth':'golden rings'};
gifts['fourth']='calling birds';

3:引數

可選引數 {}或者[]中的引數為可選引數

void enableFlags({bool bold,bool hidden}){// ...}
String say(String from,String msg,[String device ='carrier pigeon',String mood]){var result ='$from says $msg'
;if(device !=null){ result ='$result with a $device';}if(mood !=null){ result ='$result (in a $mood mood)';}return result;}

預設引數

/// Sets the [bold] and [hidden] flags ...void enableFlags({bool bold =false,bool hidden =false}){// ...}

如上{}[]作為可選引數的區別為,{}呼叫時需要加上別名,而[]呼叫時是按照順序的,具體如下:

{}作為可選的使用:

enableFlags(bold:true);
[]作為可選的使用:
say('Bob','Howdy','我是可選1,'我是可選2')

方法作為引數:

void printElement(int element){
  print(element);}var list =[1,2,3];// Pass printElement as a parameter.
list.forEach(printElement);

4:操作符

~/ 這種操作符返回的是一個int數

5~/2//2  Result is an int

??=  左邊的數如果為null,就右邊的結果賦值給它


var b = null;// 之後b的值為10
b ??= 10;

?? 如果左邊為null就用右邊的值,用法如下,如果name變數為null,那麼函式返回Guest,否者返回name的值

String playerName(String name)=> name ??'Guest';

?.  如果一個物件部位null,才執行.之後的語句,無論是函式還是屬性.

..  不好說,相當於builder模式,返回呼叫之前的物件,很強大

 var test =new Map();
test[1]="hello1";
test[2]="hello2";
test[3]="hello3";
//以上等同於
var test1= new Map()..[1]="hello1"..[2]="hello2"..[3]="hello3";

5:switch

dart中switch沒有break會報錯,如下:

var command ='OPEN';switch(command){case'OPEN':
    executeOpen();// ERROR: Missing breakcase'CLOSED':
    executeClosed();break;}

但有時邏輯有需要穿透下去,使用方式如下:

var command ='CLOSED';switch(command){case'CLOSED':// Empty case falls through.case'NOW_CLOSED':// Runs for both CLOSED and NOW_CLOSED.
    executeNowClosed();break;}

如有CLOSED分支也要邏輯,使用方式如下:

var command ='CLOSED';switch(command){case'CLOSED':
    executeClosed();continue nowClosed;// Continues executing at the nowClosed label.

  nowClosed:case'NOW_CLOSED':// Runs for both CLOSED and NOW_CLOSED.
    executeNowClosed();break;}

6:異常

使用方式如下:

try{
  breedMoreLlamas();} on OutOfLlamasException{// A specific exception
  buyMoreLlamas();} on Exceptioncatch(e){// Anything else that is an exception
  print('Unknown exception: $e');}catch(e){
// catch中可以有兩個引數catch(e,s) e:異常資訊 s:堆疊資訊
  print('Something really unknown: $e');rethrow; // rethrow可以重新丟擲這個異常,
}

7:import 

show從一個package中只匯入某一個類,hide 除了某個類都匯入

// Import only foo.import'package:lib1/lib1.dart'show foo;// Import all names EXCEPT foo.import'package:lib2/lib2.dart'hide foo;

延遲匯入,使用時才匯入

import'package:greetings/hello.dart' deferred as hello;

When you need the library, invoke(呼叫) loadLibrary() using the library’s identifier.

Future greet()async{await hello.loadLibrary();
  hello.printGreeting();}

8:可呼叫類

程式碼如下,可以讓一個類的例項呼叫像方法一樣呼叫。

class WannabeFunction {
  call(String a, String b, String c) => '$a $b $c!';
}
main() {
  var wf = new WannabeFunction();
  var out = wf("Hi","there,","gang");
  print('$out');
}

9:typedef

可以給一些方法 類 取別名

typedefCompare=intFunction(Object a,Object b);

相關推薦

dart實用語法總結(持續更新)

這是一篇總結dart入門文章中對一些覺得驚豔且實用的語法記錄,初學,有的地方理解不對,勿噴。_變數名  一下劃線開始的變數名錶示私有的1:string  多行書寫一行顯示:當字串太長時可以使用如下方式,這種書寫方式最終顯示還會是一行。var s1 ='String ''con

數論總結(持續更新....)

唯一分解定理 任何大於1的自然數,都可以唯一分解成有限個質數的乘積,即: n=p1^a1*p2^a2*p3^a3....pm^am 尤拉函式 比n小,並且與n互質的正整數的個數(包括1). 線性

zookeeper知識點總結--持續更新

Zookeeper有三種執行形式:叢集模式、單機模式、偽叢集模式。 若刪除節點存在子節點,那麼無法刪除該節點,必須先刪除子節點,再刪除父節點。 zookeeper使用分為命令列、javaApi zookeeper的三個jar包jar、javadoc.jar、sources

關於Spark實際操作的一些實用乾貨(持續更新.....)

1.有關local模式     曾經在國外網站上看到一篇帖子,覺著很受用,拿來分享。     說Spark的local模式,就是指在本機上執行的本機模式,所以,有關於你設定的executor.memory以及driver.memory的,並不會影響Spark本身記憶體設定

Spring MVC常見bug總結----持續更新

一、   Spring MVC的配置檔案Springmvc-servlet.xml報錯,在新增 <context:component-scan base-package="controller" />  來指定控制器所在的包時,視窗顯示紅叉,報錯內容為: Mu

Vim 實用技巧(持續更新!)

Vim 實用技巧(持續更新中!) 轉載請註明出處:https://blog.csdn.net/jpch89/article/details/85273813 最後更新於:2018.12.31 文章目錄 Vim 實用技巧(持續更新中!) 1.

Ktolin基礎語法持續更新

java轉ktolin 當有時候不知道ktolin怎麼寫時,可以先在java寫一個程式碼然後再Code -> Convert Java File to Ktolin File,就可以轉換了,比如跳轉Activity, //java中DialogAc

Golang語法的踩坑總結持續更新

*本來這篇是想寫docker的基本操作總結的。。。想想還是寫這個吧。。。→_→* 變數宣告使用 := 方式時,左值必須是未宣告的,否則會出現編譯錯誤 //.\main.go:8:4: no

C#、Java的一些小功能點總結(持續更新......)

grid datagrid item 其他 cnblogs hid roc oid sha 前言:在項目中,有時候一些小的功能點,總是容易讓人忽略,但是這些功能加在項目中往往十分的有用,因此筆者在這裏總結項目中遇到的一些實用的小功能點,以備用,並持續更新...... 1.禁

多功能萬能模態框插件,項目實用持續更新...

lose 引入 clas -c 粘貼 更新 mode log pom 附github地址 https://github.com/pomelott/jquery-plug-in 模態框(modelBox) 使用方法 1.引入css文件(建議復制粘貼至項目css文件中

LeetCode 總結持續更新。。。。)

總結 get ngs multiply log 。。 icu ble 更新 No. Name Acceptance Difficulty Star 43 Multiply Strings 27.3% medium 3.5 90 Subsets II 36.5%

關於Yii2的MVC的視圖總結持續更新

gif pre lis frontend dbo register front reg open 一、首先在控制器中,將處理好的數據發送給前臺: $this->layout = ‘base‘; 這裏填寫視圖的模板文件(可以不寫這行代碼,如果不寫,默認為views/la

Python 的那些坑總結——持續更新

多說 分享 earlier als lse image code while HA 1.三元表達式之坑 很顯然,Python把第一行的(10 + 4)看成了三元表達式的前部分,這個坑是看了《Python cookbook》(P5)中學到的,書中的代碼: 2.Py

前端開發工程師從入門到精通學習過程及資源總結持續更新

開發實戰 set dex 從入門到精通 main 知識 uno 基礎入門 易雲 職位名稱:前端開發工程師 學習概要:1、先了解基礎,html/css/JavaScript是基礎。html/css就是做靜態頁面的,javascript是做動態的。 2、學習框架:jQuery(

Java常見異常總結持續更新......)

1.類未找到 Exception in thread "main" java.lang.NoClassDefFoundError:類名 Caused by: java.lang.ClassNotFoundException:類名 這種異常未未發現類異常,是由於編譯的時候未找到該類而報異常

各大實用網站蒐羅(持續更新...)

1.機器學習 中國機器人 2.大資料處理工具 elasticsearch(for python) 煉數成金 3.分散式 etcd官網 elasticSearch中文 elasticSearch英文 4.綜合站點 極客學院 5.好用的工具 好

計算機專業學習資料總結(~持續更新

今天為了複習離散數學,想著上網上找份課本答案(老師沒有給答案),結果那本書的配套題解的PDF大多數都是來自CSDN社群的,CSDN下載需要積分,要麼開通VIP,那VIP的費用實在不是我等窮學生所能支付得起的,我靈機一動便想到了萬能的淘寶賣家果然有賣CSND積分的,花了1塊3,很順利地下載了我想要的輔導書,之前

java+selenium的使用方法歸納總結持續更新

selenium的使用 第一步:獲取selenium的jar包及驅動瀏覽器的驅動 在獲取selenium的jar包和瀏覽器的驅動包時,要對照她們的版本號 通過下面可檢視谷歌的版本對應 java+selenium的入門 案例 selenium包 谷歌驅動包 火狐驅動包 IE驅動包

專案遇到的坑和注意點 總結 持續更新

gitHub地址: 傳送門 工作中遇到的坑和思考 有不同意見歡迎指正交流 前排推薦 https://github.com/topics/javascript 關注JS開源框架動態 勤於總結和思考 1. ajax請求的結果要和後端約定好返回的資料格式。

SQL注入使用詳細總結(由淺及深,持續更新

版權宣告:本文為博主原創文章,歡迎轉載,請註明出處: https://me.csdn.net/qq_41880069 SQL注入使用總結 一:SQL注入的原理 1:什麼是SQL SQL,指結構化查詢語言,作用:訪問和處理資料庫 也就是說SQL語言的所有操作都是