注:本文仅记录一些和java语法不甚相同或较难理解部分,方便个人的查找和学习
1.在Dart
中有两个比较特殊的运算符。
赋值运算符??=
条件运算符??
void operatorTest(){// dart中的运算符/** 赋值运算符 ??=* 条件运算符 ??**///举例var a;a ??= 10;//当a没有值的时候就赋值 10print(a);a ??= 5;print(a);a ??= 1;print(a);}
代码运行结果
条件运算符 ??
void operatorTest(){// dart中的运算符/** 条件运算符 ??*/var a;a ??= 10;//当a没有值的时候就赋值 10var b ;b = 5;print(b ?? a);// ??当左边有值就返回左边,否则返回右边
代码运行结果
2.Dart中的箭头函数
void main(){functionTest();}void functionTest() {print(sum(10, 10));}// 求和方法int sum (int a,int b){return a +b ;}
返回值和参数类型可以省略。那么变形如下:
// 求和方法sum (a,b) => a +b ;
我个人理解为将大括号和return省略 由"=>"代替
3.Dart中的可选参数
Dart中可选参数类型分为两种
由大括号{}包围特点:实现方法时,可以指定具体传递某一个参数。
与python中关键字传参类似,位置可以不必须保持一致
由中括号 [ ] 包围特点,多个可选参数时,默认按照前后顺序传递。共同点:括号内的参数传参时均可以不传递
void main(List<String> args) {print(getStr("xxx"));//xxxprint(getStr("xxx",12));//xxx 12print(getPart1("大括号", pwd: "123", name: "小米")); // 顺序可以不同 }String getStr(String name,[int age]){// 这里由[ ]括起来的参数在调用时可以不传递if(age != null){return "$name $age";}else {return name;}String getPart1(var a, {String name, String pwd}) {//这里由 { } 括起来的参数在调用时可以不传递print("a=$a name=$name pwd=$pwd");}
4.Dart中类 中无论函数还是方法都不支持重载,方法名一样,参数不同会报错。
class A{A(){}A(int a){//这个地方会报错,说A()函数已经存在}A.eat(){//构造函数}A.sing(int food){//构造函数}A.sleep(){//构造函数}}
如果觉得《Dart语言笔记(运算符 箭头函数 可选参数)》对你有帮助,请点赞、收藏,并留下你的观点哦!