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.
vargifts ={// 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語言的所有操作都是