Dart最新的版本是Dart2
,Dart2
是一款高效、简洁、已通过实战检验的语言,能够应对现代应用程序开发的挑战。Dart2大大加强和精简了类型系统,清理了语法,并重建了大部分开发工具链,使移动和Web开发变得更加愉快和高效。Dart2还融合了包括Flutter、AdWords和AdSense等工具开发者对该语言早期使用的经验教训,以及针对客户反馈的成千上万大大小小的问题进行了改进。
那么Flutter和Dart有什么关系?确实有关系。早期的Flutter团队评估了十多种语言才选择了Dart,因为它符合构建用户界面的方式。以下是Flutter团队看重的Dart语言的部分特性:
- Dart是
AOT(Ahead Of Time)
编译的,编译成快速、可预测的本地代码,使Flutter几乎都可以使用Dart编写。这不仅使Flutter变得更快,而且几乎所有的组件(包括所有的小部件)都可以定制。 - Dart也可以
JIT(Just In Time)
编译,开发周期非常短,工作流颠覆常规(包括Flutter流行的亚秒级有状态热重载)。 - Dart可以更轻松地创建以60fps运行的流畅动画和转场。Dart可以在没有锁的情况下进行对象分配和垃圾回收。就像JavaScript一样,Dart避免了抢占式调度和共享内存(因而也不需要锁)。由于Flutter应用程序被编译为本地代码,因此不需要在领域之间建立缓慢的桥梁(例如,JavaScript到本地代码)。它的启动速度也快得多。
- Dart使Flutter不需要单独的声明式布局语言(如JSX或XML)或单独的可视化界面构建器,因为Dart的声明式编程布局易于阅读和可视化。所有的布局使用一种语言,聚集在一处,Flutter很容易提供高级工具,使布局更简单。
- 开发人员发现Dart特别容易学习,因为它具有静态和动态语言用户都熟悉的特性。
- 并非所有这些功能都是Dart独有的,但Dart将这些功能组合得恰到好处,使Dart在实现Flutter方面独一无二。因此,没有Dart,很难想象Flutter是否能会像现在这样强大。
当你想创建移动App、Web App、Command-line
应用时,都可以使用Dart语言,如图所示。
Dart重要的概念如下:
- 所有的东西都是对象,无论是变量、数字、函数等都是对象。所有的对象都是类的实例。所有的对象都继承自内置的Object类。这点类似于Java语言“一切皆为对象”。
- 在程序中指定数据类型使得程序能够合理地分配内存空间,并帮助编译器进行语法检查。但是,指定类型不是必需的。Dart语言是弱数据类型。
- Dart代码在运行前解析。指定数据类型和编译时的常量,可以提高运行速度。
- Dart程序有统一的程序入口:
main()
,这一点与Java、C/C++语言相似。 - Dart没有
public、protected
和private
的概念。私有特性通过变量或函数加上下划线来表示。 - Dart的工具可以检查出警告信息(warning)和错误信息(errors)。警告信息只是表明代码可能不工作,但是不会妨碍程序运行。错误信息可能是编译时的错误,也可能是运行时的错误。编译时的错误将阻止程序运行,运行时的错误将会以异常(exception)的方式呈现。
- Dart支持
anync/await
异步处理。 - 关键字(56个)如下:
abstract,do,import,super,as,dynamic,in,switch,assert,else,interface,sync*,enum,implements,is,this,async*,export,library,throw,await,external,mixin,true,break,extends,new,try,case,factory,null,typedef,catch,false,operator,var,class,final,part,void,const,finally,rethrow,while,continue,for,return,with,covariant,get,set,yield*,default,if,static,deferred
。
Dart语言常用库如表所示。
其中如下三个开发库的使用频率最高:
dart:core
:核心库,包括strings、numbers、collections、errors、dates、URIs等。dart:html
:网页开发中DOM相关的一些库。dart.io
:I/O命令行使用的I/O库。
dart:core
库是Dart语言初始已经包含的库,其他的任何库在使用前都需要加上import语句。例如,要使用dart:html
,可以使用如下命令:
import 'dart:html';
使用官方提供的pub工具可以安装丰富的第三方库。第三方库的地址为pub.dartlang.org
。
评论前必须登录!
注册