Dark 运算符
1 赋值运算符 ??=
b ??= "hello" 若b为空,则把"hello"赋给b 。
2 三目运算符
boolean ? expression1 : expression2 ;
3 a ?? b
string a ="";
string b = "b";
string c = a??b ,若a不为空,则把a赋给c,否则把b赋给c
4 for语句
var list = [1,2,3]; for(int a in list){ print(a); }
5 方法特性
-
方法也是对象,具体类型Function
-
返回值类型、参数类型都克省略
-
箭头语法: => expression 是 {return expr;} 缩写
-
都有返回值,默认return null
printPerson("koala", 18); printPerson(name,age){ //省略了返回值和参数类型 print("name=$name ,age=$age"); } getName(name) => "name $name";//箭头语法 后面跟着一个返回的表达式 ,这里返回一个字符串
6 可选参数(在flutter控件初始化时经常用到)
基于名称用{}表示,调用时需指定参数名称。
printPerson(name, {int age, String gender}) { print("name=$name,age=$age,gender=$gender"); } printPerson("koala", age: 18);
基于位置用[]表示
printPerson1(name, [int age, String gender]) { print("name=$name,age=$age,gender=$gender"); } printPerson1("koala", 18, "male");
7 方法对象
方法可作为对象赋值给其它变量
void main(){ Function function = printHello;//将方法名称赋给变量 function('koala');//调用方法 } printHello(String name){ print("hello,$name"); }
方法可作为参数传递给其它方法
void main() { var list = [1, 2, "a", true]; list.forEach(test); } void test(Object obj) { if (obj is String) print(obj * 2); if (obj is num) print(obj * 2); }