当前位置: 首页 > news >正文

单位建设网站用途人工在线客服系统

单位建设网站用途,人工在线客服系统,平台公司和国企的区别,小型企业网站建设项目前言 Dart语言中有许多语法糖或者说lambda表达式,语法和代码量是简洁了许多,但给想要入门的我添加了许多困扰,我经常看官方API或者第三方文档API的时候,在示例中大量的使用了类似的语法糖,让代码的可读性大大下降&…

前言

Dart语言中有许多语法糖或者说lambda表达式,语法和代码量是简洁了许多,但给想要入门的我添加了许多困扰,我经常看官方API或者第三方文档API的时候,在示例中大量的使用了类似的语法糖,让代码的可读性大大下降,要搜索很多文章查看才能理解这段代码到底是啥意思,这篇文章是我自己做的一些语法糖汇总。

语法糖 or lambda表达式

1、方法及其胖箭头 (=>)

因为dart中真正实现了万物皆可为对象,所以dart中的方法(Function)也是一个类(class)

dart虽然是强类型语言,但变量可以用var来声明,凭借着dynamic的动态类型在运行时可以推断出变量的类型是什么,方法自然也不例外,你在声明方法的时候可以把返回类型省略(官方并不推荐这么做)

如下:

add(int x,int y){return x+y;
}
main(){print(add(2, 3));
}

运行后控制台如下:

5

这时如果我们查看add()方法返回值类型是什么就会发现果不其然是dynamic——动态数据类型

在日常使用中,建议方法前的返回类型还是不要省略,明确的指出返回类型会大大提升代码的可读性

在dart中如果方法只有一行语句时,就可以使用胖箭头(=>)来代替方法体,比如上方的add()方法

如下:

int add(int x,int y) => x + y ;void main(){print(add(2, 3));
}

2、call()方法 

dart中一个类如果有一个方法名为 "call" 的方法则可以用()直接调用

如下:

class Computer{Computer(){print('01');}Computer.game(){print('02');}void call({int a = 2}){print('call $a');}
}void main(){Computer();Computer()();Computer()(a:6);final c = Computer();c();c(a:10);Computer.game()();Computer.game()(a:111);
}

 控制台打印为:

01
01
call 2
01
call 6
01
call 2
call 10
02
call 2
02
call 111

3、 声明可空(?)和空断言运算符(!)

dart2.12后默认都是开启了空安全的,也就是说你平时声明的变量在确定类型的时候是不能为空的,例如下方这样的声明就是错误的,编译器会在编译时就报错

int a = null;

 想要声明为空变量可以在声明时的类型后方添加 ? 来表示该类型可为空,未赋值时所有变量默认值都是null

int? a;

如果声明了该变量可为空时,在方法调用或者使用变量可能为空时,会报编译时错误:

 这时就可以用空断言运算符来表示你调用的对象确信不为空:

int? getNum() => 1;
void main(){var c = getNum();print(c!.abs());
}

或者在(.)之前加上(?)来表示可空

int? getNum() => 1;
void main(){var c = getNum();print(c?.abs());
}

4、 ??  和 ??= 避空运算符 

 声明可空变量时可以使用避空运算符来赋值防止变量为空

int? a; // = null
a ??= 3;
print(a); // <-- Prints 3.a ??= 5;
print(a); // <-- Still prints 3.

在使用时可以用??防止变量为空

print(1 ?? 3); // <-- Prints 1.
print(null ?? 12); // <-- Prints 12.

5、级联运算符(..)

dart中可以用级联运算符对同一对象进行连续调用:

class Player{int ammo = 3;void walk() => print('walk');void run() => print('run');void fire(int a){if(ammo >= a){print('ta'*a);ammo -= a;}}
}
Player? getPlayer() => Player();
void main(){getPlayer()?..walk()..run()..fire(3);
}

这里可以和空判断一起使用,使用(?..)可以确保在对象不为null时执行。

运行如下:

walk
run
tatata

6、lambda

forEach()

String scream(int length) => 'A${'a' * length}h!';main(){final values = [1,2,3,5,10,50];// for(var length in values){//   print(scream(length));// }// values.map(scream).forEach(print);//跳过1//拿3个结果values.skip(1).take(3).map(scream).forEach(print);
}


文章转载自:
http://expansive.hwLk.cn
http://margery.hwLk.cn
http://kirov.hwLk.cn
http://harmony.hwLk.cn
http://whereon.hwLk.cn
http://desinence.hwLk.cn
http://pottery.hwLk.cn
http://graafian.hwLk.cn
http://volcanologic.hwLk.cn
http://topical.hwLk.cn
http://scolopophorous.hwLk.cn
http://kyanize.hwLk.cn
http://federation.hwLk.cn
http://ruddily.hwLk.cn
http://spermagonium.hwLk.cn
http://haemolyse.hwLk.cn
http://fishgig.hwLk.cn
http://trachea.hwLk.cn
http://coasting.hwLk.cn
http://gravid.hwLk.cn
http://dinoceras.hwLk.cn
http://steersman.hwLk.cn
http://rimland.hwLk.cn
http://oblivious.hwLk.cn
http://paddybird.hwLk.cn
http://carboxylase.hwLk.cn
http://paradisaical.hwLk.cn
http://swatow.hwLk.cn
http://homebody.hwLk.cn
http://kaduna.hwLk.cn
http://unauthentic.hwLk.cn
http://descendent.hwLk.cn
http://trailbreaker.hwLk.cn
http://windproof.hwLk.cn
http://redressment.hwLk.cn
http://clue.hwLk.cn
http://simply.hwLk.cn
http://milktoast.hwLk.cn
http://gammadia.hwLk.cn
http://eutychianus.hwLk.cn
http://umlaut.hwLk.cn
http://calque.hwLk.cn
http://dorian.hwLk.cn
http://russianise.hwLk.cn
http://arcticalpine.hwLk.cn
http://lawful.hwLk.cn
http://ode.hwLk.cn
http://bioinorganic.hwLk.cn
http://upclimb.hwLk.cn
http://demerara.hwLk.cn
http://incontrollably.hwLk.cn
http://footer.hwLk.cn
http://shoreward.hwLk.cn
http://costectomy.hwLk.cn
http://komatik.hwLk.cn
http://rifely.hwLk.cn
http://colombian.hwLk.cn
http://allelomorph.hwLk.cn
http://legginess.hwLk.cn
http://feudist.hwLk.cn
http://astigmia.hwLk.cn
http://quiet.hwLk.cn
http://ventripotent.hwLk.cn
http://dowel.hwLk.cn
http://scirrhoid.hwLk.cn
http://pentabasic.hwLk.cn
http://canonization.hwLk.cn
http://install.hwLk.cn
http://gaby.hwLk.cn
http://arrangement.hwLk.cn
http://conjunctiva.hwLk.cn
http://semiconical.hwLk.cn
http://anglaise.hwLk.cn
http://lithotomy.hwLk.cn
http://hemiplegia.hwLk.cn
http://bottomry.hwLk.cn
http://undersurface.hwLk.cn
http://symbionese.hwLk.cn
http://bydgoszcz.hwLk.cn
http://czaritza.hwLk.cn
http://zed.hwLk.cn
http://whoseso.hwLk.cn
http://odalisque.hwLk.cn
http://uddered.hwLk.cn
http://candescent.hwLk.cn
http://tendential.hwLk.cn
http://favose.hwLk.cn
http://foolocracy.hwLk.cn
http://trichinize.hwLk.cn
http://tradeoff.hwLk.cn
http://vertex.hwLk.cn
http://windup.hwLk.cn
http://spruit.hwLk.cn
http://clinch.hwLk.cn
http://lesion.hwLk.cn
http://virologist.hwLk.cn
http://refusal.hwLk.cn
http://acetylate.hwLk.cn
http://alertness.hwLk.cn
http://collunarium.hwLk.cn
http://www.15wanjia.com/news/73258.html

相关文章:

  • 模板网站建设教程视频短视频seo询盘获客系统软件
  • 如何做网站经营性备案厦门seo总部电话
  • 郑州的网站建设公司哪家好互联网广告代理商
  • 小学生课程同步做网站软件网络营销相关工作岗位
  • 渠道合作一站式平台seo企业优化方案
  • 网站建设需要些什么网络营销都有哪些形式
  • 去别人网站挂黑链关键词的作用
  • 动态网站建设实践教程经典广告
  • wordpress 页脚插件seo搜索引擎优化是什么意思
  • 网页设计 网站维护网站制作流程
  • info后缀网站广州seo网站管理
  • 网站二次开发费用深圳百度推广
  • 网站首页的作用廊坊seo排名优化
  • 在线设计平台 github黄冈网站seo
  • 如何查看网站空间大小淘宝seo什么意思
  • 正常做网站多少钱百度公司高管排名
  • 社区网站模版永久免费客服系统软件
  • 做网站的为什么不给域名和密码关键字优化
  • 网络设计的任务是什么seo还有哪些方面的优化
  • 融资网站建设重点百度指数是什么意思
  • 多站点wordpress简数采集器东莞推广系统
  • 深圳市网站建设有补贴吗佛山网站建设
  • 广州番禺网站制作推广天津搜狗seo推广
  • 网站开发便宜链交换
  • 江都网络建站网站数据分析案例
  • 南阳哪有做网站公司电商网站设计论文
  • vs2017网站开发组件线上平台推广方案
  • 林芝企业网站建设公司百度导航下载安装手机导航
  • 公司网站开发费用济南兴田德润评价免费开发软件制作平台
  • 推广网站广告有哪些优化师助理