1、字符串表達(dá)式?
描述:${expression} ,如果表達(dá)式是變量器罐,可以省略{}
示例:'${3 + 2}'? '5'??
? ? ? ? ? '${"word".toUpperCase()}'? ? ? 'WORD'??
? ? ? ? ? '$myObject'? ? ? ? ? ? ? ? The value of?myObject.toString()
2晴裹、null空值感知運(yùn)算符
??=?賦值運(yùn)算符脉漏,僅在該變量當(dāng)前為null時(shí)才為該變量賦值.
int? a;// The initial value of a is null.
a??=3;
print(a);// <-- Prints 3.
??锈麸,表達(dá)式的值為null讼育,右側(cè)求值并返回該表達(dá)式
print(1??3);// <-- Prints 1.
print(null??12);// <-- Prints 12.
myObject?.someProperty 等價(jià)于(myObject!=null)?myObject.someProperty:null
也可以鏈?zhǔn)讲僮鱩yObject?.someProperty?.someMethod()
3手形、集合類型
(1)類型推斷
dart內(nèi)建集合類型包括lists, maps, and sets啥供;
final? aListOfStrings=['one','two','three'];
final? aSetOfStrings={'one','two','three'};
final? aMapOfStringsToInts={'one':1,'two':2,'three':3,};
推斷為:
final? aListOfInts=<int>[];
final? aSetOfInts=<int>{};
final? aMapOfIntToDouble=<int,double>{};
子類型初始化,但希望類型為父類型:final? aListOfBaseType=<BaseType>[SubType(),SubType()];
4库糠、=>
5伙狐、鏈?zhǔn)讲僮?/p>
myObject.someMethod() 返回someMethod方法的結(jié)果
myObject..someMethod()? 返回myObject對(duì)象
因此可以
querySelector('#confirm')
..text='Confirm'
..classes.add('important')
..onClick.listen((e)=>window.alert('Confirmed!'));
6、函數(shù)
(1)函數(shù)參數(shù)
參數(shù)包括位置參數(shù)和命名參數(shù)曼玩,位置參數(shù)如下:
int sumUp(int a, int b, int c) {
int sumUpToFive(int a, [int b, int c, int d, int e]) {? 中括號(hào)表示可選鳞骤,默認(rèn)值是null
int sumUpToFive(int a, [int b = 2, int c = 3, int d = 4, int e = 5]) {? 設(shè)置默認(rèn)值
命名參數(shù)如下:
void printName(String firstName, String lastName, {String suffix}) { //大括號(hào)表示可選命名參數(shù)
void printName(String firstName, String lastName, {String suffix = ''}) { 設(shè)置默認(rèn)值
7、類