官网: https://dart.dev/
中文网:https://www.dartcn.com/
语言概览: https://www.dartcn.com/guides/language/language-tour#number
Dart库概览:https://www.dartcn.com/guides/libraries/library-tour
flutter 笔记:https://www.yuque.com/zhuchaoyang/tnyvrp

前言

谷歌推出Flutter跨平台UI框架后,对移动端的开发又产生了新的影响,Flutter采用Dart语言开发,而Flutter为什么选择Dart语言作为唯一的开发语言呢?总的来说,其拥有如下优势

  • Dart可基于AOT(Ahead Of Time)编译,即编译成平台的本地代码,运行性能高。
  • Dart也可基于JIT(Just In Time)编译,编译快速,可热加载,使开发周期加倍提升(Flutter亚秒级有状态热重载)
  • Dart可以更轻松地创建以60fps运行的流畅动画和转场。Dart在没有锁的情况下进行对象分配和垃圾回收
  • Dart语法结合Java与JavaScript语法特点,几乎没有令人不适的怪异语法,使Java程序员倍感亲切,快速上手

通常来说一门语言要么使用AOT编译,编译慢,开发效率低,或者使用JIT编译,在运行时编译,虽然可以热重载,但是执行效率低,而Dart在这两种之间做出了完美平衡,当开发时使用JIT编译,调试快,所见即所得,开发效率高,当发布时,使用AOT编译,编译成目标平台的本地代码,执行效率高。

dart简述

dart也是谷歌发布的一门开源编程语言。
dart最初的目标是成为下一代web编程语言,取代javascript,但最终被js给干掉了。
dart目前已可用于全平台开发。
dart是一门面向对象的编程语言。

应用
  • web开发
  • 跨平台移动应用开发(flutter)
  • 脚本或服务端开发

版本

1.x 稳定版
2.x 新版,2018年发布

通过Dart2,我们大大加强和简化了类型系统,清理了语法,并从头开始重建了大量开发人员工具链,使移动和Web开发更加高效。

Dart的环境搭建

dart有单独的sdk,如果只是为了flutter可以不用下载,如果是为了学习dart以及把dart运用到其它地方,那就安装。
https://dart.dev/tools/sdk#install

下载
推荐软件或者安装包

安装
软件一直下一步
安装包直接解压到想要防止的文件夹下面

配置环境变量
用户变量 Path里添加dart-sdk的路径: C:\other-softs\dart-sdk\lib

Dart的vs环境配置

1、安装dart插件(如果之前安装了flutter就不用了)
2、装一个code runner插件用来执行dart文件
3、所有的dart文件以 .dart 为文件名后缀
4、一句话写完以后必须加分号

hello world示例:

  1. // 要执行的所有东西都要放到这个入口方法里面
  2. main() {
  3. print('hello world'); //一句话写完以后必须加分号
  4. }

code runner 运行

右键run code执行
如果报错
配置
设置 -> 扩展 -> Run Code Configuration -> settings.json
加入 “code-runner.runInTerminal”: true

dart 命令 运行
  1. dart run 1.dart

Dart 语言特性

  • 一切变量皆对象,每个对象都是类的实例。int、double、函数、null 等都是对象,所有对象都继承自Object类。
  • dart 是强类型语言,但由于具备类型推断功能,所以类型声明是可选的。
  • dart 支持顶级函数、静态函数、实例函数,也允许在函数中嵌套函数,即局部函数。类似的,dart 也支持顶级变量、静态变量、实例变量。
  • dart 没有关于 public、protected、private 的关键字。通过为变量标识符添加下划线前缀,表明该标识符对其库是私有的。

Dart 小例子

  1. /**
  2. * 多行注释
  3. */
  4. void printString(String msg) {
  5. print("msg value: $msg");
  6. }
  7. void main() {
  8. var msg = "Hello, World!";
  9. printString(msg); //msg value: Hello, World!
  10. printString(null); //msg value: null
  11. }

如上代码包含了 dart 语言(也是基本所有编程语言)的基本元素

  • 多行注释和单行注释
  • 以分号结尾且必需有
  • 允许定义顶层函数
  • 最基础的数据类型之一:String,其它的内置数据类型还有 int 、double、list、map 等
  • 类型推导。通过关键字 var 来声明变量而无需指明变量类型
  • 一种方便的插入变量值的方式,字符串字面值:$msg
  • 应用程序的入口:main 函数