Dart简介:

Dart诞生于2011年10月10日,Dart是一种“结构化的web编程”语言,Dart虽然是谷歌开发的计算机编程语言,但后来被ECMA认定位标准,这门语言用于Web、服务端、移动应用和物联网等领域的开发;

编程语言有这么多种类,Flutter为什么要选择Dart作为开发语言呢?这是因为Dart更符合构建用户界面的方式;

以下是Flutter团队看重Dart语言的部分特性:

1.Dart是AOT(Ahead Of Time)编译的,编译快速,可预测的本地代码,是Flutter几乎都可以使用Dart编写,这不仅使Flutter变得更快,而且几乎所有的组件都可以定制;

2.Dart也可以JIT(Just In Time)编译,开发周期异常快,工作流颠覆常规(包括Flutter的热重载);

3.Dart可以更轻松的创建以60fps运行的流畅动画和转场,Dart可以在没有锁的情况下进行对象分配和垃圾回收,就像JavaScript一样,Dart避免了抢占式调度和共享内存(因此不需要锁),由于Flutter应用程序被编译为本地代码,因此不需要在领域之间建立缓慢的桥梁,它的启动速度也快的多;

4.Dart使Flutter不需要单独的声明式布局语言,或单独的可视化界面构建器,因为Dart的声明式编程布局易于阅读和可视化,所有的布局使用一种语言,聚集在一处,Flutter很容易提供高级工具,使布局更简单;

Dart重要概念:

1.所有的东西都是对象,无论是变量、数字、函数等都是对象。所有的对象都是类的实例。所有的对象都继承自内置的Object类,这点类似于Java语言“一切皆为对象”;

2.程序中制定数据类型使得程序合理地分配内存空间,并帮助编译器进行语法检查,但是,指定类型不是必须的,Dart语言是弱数据类型;

3.Dart代码在运行前解析,指定数据类型和编译时的常量,可以提高运行速度;

4.Dart程序有统一的程序入口:main();

5.Dart没有public、protected和private的概念,私有特性通过变量或函数加上下划线来表示;

6.Dart支持anync/await异步处理;

7.Dart语言常用库:

dart:async  异步编程支持,提供Future和Stream类;

dart:collection  对dart:core提供更多的集合支持;

dart:convert  不同类型(JSON,UTF-8)间的字符编码、解码支持;

dart:core  Dart语言内建的类型、对象以及dart语言核心的功能;

dart:html  网页开发用到的库;

dart:io  文件读写I/O相关操作的库;

dart:math  数字常量及函数,提供随机数算法;

dart:svg  事件和动画的矢量图象支持;

其中如下三个开发库的使用频率最高:

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’

Flutter学习笔记(2)--Dart语言简介的更多相关文章

  1. Flutter学习二之Dart语言介绍

    上次我记录了Flutter的环境搭建,这次来简单记录一下Drat语言,Flutter是 Google推出并开源的移动应用开发框架,开发语言是Dart,那么Dart语言和其他的语言在语法上有上面区别呢, ...

  2. Flutter学习笔记(3)--Dart变量与基本数据类型

    一.变量 在Dart里面,变量的声明使用var.Object或Dynamic关键字,如下所示: var name = ‘张三’: 在Dart语言里一切皆为对象,所以如果没有将变量初始化,那么它的默认值 ...

  3. Flutter学习笔记(4)--Dart函数

    如需转载,请注明出处:Flutter学习笔记(4)--Dart函数 Dart是一个面向对象的语言,所以函数也是对象,函数属于Function对象,函数可以像参数一样传递给其他函数,这样便于做回调处理: ...

  4. Flutter学习笔记(5)--Dart运算符

    如需转载,请注明出处:Flutter学习笔记(5)--Dart运算符 先给出一个Dart运算符表,接下来在逐个解释和使用.如下:                            描述       ...

  5. Flutter学习笔记(8)--Dart面向对象

    如需转载,请注明出处:Flutter学习笔记(7)--Dart异常处理 Dart作为高级语言,支持面向对象的很多特性,并且支持基于mixin的继承方式,基于mixin的继承方式是指:一个类可以继承自多 ...

  6. Flutter学习笔记(6)--Dart流程控制语句

    如需转载,请注明出处:Flutter学习笔记(5)--Dart流程控制语句 条件语句:if.if...elseif.if...elseif...else ; ) { print('优秀'); } &g ...

  7. Flutter学习笔记(6)--Dart异常处理

    如需转载,请注明出处:Flutter学习笔记(6)--Dart异常处理 异常是表示发生了意外的错误,如果没有捕获异常,引发异常的隔离程序将被挂起,并且程序将被终止: Dart代码可以抛出并捕获异常,但 ...

  8. Flutter学习笔记(1)--环境安装

    flutter最近显得格外的火,公司的同事也一直在谈论flutter,感觉自己不学学就要失业了...所以决定顺应潮流学习以下flutter,做一下学习笔记,希望可以给需要的同学带来一些帮助~ 正文为f ...

  9. Flutter学习笔记(15)--MaterialApp应用组件及routes路由详解

    如需转载,请注明出处:Flutter学习笔记(15)--MaterialApp应用组件及routes路由详解 最近一段时间生病了,整天往医院跑,也没状态学东西了,现在是好了不少了,也该继续学习啦!!! ...

  10. Flutter学习笔记(9)--组件Widget

    如需转载,请注明出处:Flutter学习笔记(9)--组件Widget 在Flutter中,所有的显示都是Widget,Widget是一切的基础,我们可以通过修改数据,再用setState设置数据(调 ...

随机推荐

  1. java基础篇---文件上传(组件)

    转载自:http://www.cnblogs.com/oumyye/p/4234969.html 文件上传几乎是所有网站都具有的功能,用户可以将文件上传到服务器的指定文件夹中,也可以保存在数据库中,本 ...

  2. node 调用Python exec child_process 模块

    参考:http://javascript.ruanyifeng.com/nodejs/child-process.html https://nodejs.org/api/child_process.h ...

  3. 聊聊PROFINET与PROFIBUS

    1.PROFINET与PROFIBUS从狭义上比,没有可比性,因为他们的物理接口不同,电气特性,不同,波特率不同,电气介质特性不同等等.这样两者的协议是完全没有关联性的,唯一的关联性就是两者都是PI组 ...

  4. BCGControlBar介绍

    第一次翻译有诸多不正确的地方,还忘各位指正,谢谢! 英文原文:http://www.bcgsoft.com/bcgcontrolbarpro.htm BCGControlBar是MFC的一个扩展库其英 ...

  5. OpenSSL 使用 base64 编码/解码(liang19890820)

    关于 OpenSSL 的介绍及安装请参见:Windows 下编译 OpenSSL 下面主要介绍有关 OpenSSL 使用 base64 编码/解码. 简述 编码解码 更多参考 编码/解码 #inclu ...

  6. gdal1.10编译经验

    作者:朱金灿 来源:http://blog.csdn.net/clever101 集成了一些扩展库,使用makefile编译,出现了一个链接错误: libcmt.lib(crt0.obj): erro ...

  7. numpy 辨异(二) —— np.identity()/np.eye()

    import numpy as np; 两者在创建单位矩阵上,并无区别,两者的区别主要在接口上: np.identity(n, dtype=None):只能获取方阵,也即标准意义的单位阵: np.ey ...

  8. 外部进程嵌入到Qt进程界面(使用QWindow::fromWinId)

    有时候需要做框架集成的东西,需要把其他客户端像组件一样集成到一个客户端中,类似于一个软件集成的平台客户端,统一用一个中心管理的客户端做类似于控制面板一样的东西去调用不同的软件.此时就必须相应不同的点击 ...

  9. Clojure实现的简单短网址服务(Compojure、Ring、Korma库演示样例)

    用clojure写了一个简单的短网址服务(一半抄自<Clojure 编程>).在那基础上增加了数据库,来持久化数据. 功能 用Get方法缩短一个网址: 然后在短网址列表就能够查看了, 接下 ...

  10. Leetcode 144 Binary Tree Preorder Traversal 二叉树

    二叉树的基础操作:二叉树的先序遍历(详细请看数据结构和算法,任意本书都有介绍),即根,左子树,右子树,实现方法中还有用栈实现的,这里不介绍了 /** * Definition for binary t ...