Dart 简介

1、Dart 是什么?

Dart 是一个由谷歌开发的通用编程语言,后来被 Ecma (Ecma-408)批准为标准。它用于构建 web、服务器、桌面和移动应用程序。
Dart 是一种面向对象的、类定义的、垃圾回收语言 ,使用 C 样式的语法可以随意地转换为 JavaScript。 它支持接口、 mixin、抽象类、具体化泛型、静态类型等。
Dart 是类型安全的:它结合使用静态类型检查和运行时检查,以确保变量的值总是与变量的静态类型匹配。 尽管类型是强制的,但是类型声明是可选的,因为 Dart 会在编译时执行类型推断。

2、Dart 环境配置

Dart SDK 安装
常用开发工具:Android Studio,Visual Studio Code(VSCode)等,下面以 VSCode 为例:
1、安装 Dart 插件;
2、安装 code runner 插件;

3、Dart 的特性

1、任何保存在变量中的都是一个对象, 并且所有的对象都是对应一个类的实例。无论是数字,函数和 null 都是对象。所有对象继承自 Object 类。未初始化的变量默认值是 null,即使变量是数字类型默认值也是 null。
2、Dart 语言是强类型编程,一旦确定类型,则不可改变变量类型,编译时会进行语法检查,但 Dart 允许弱类型语言式的编程。如果要明确说明不需要任何类型,需要使用特殊类型 dynamic
3、Dart 支持泛型,如 List <int> (整数列表)或 List <dynamic> (任何类型的对象列表)。
4、Dart 支持顶级函数(例如:main()是统一入口函数 ), 同样函数绑定在类或对象上(分别是静态函数和实例函数 )。 以及支持函数内创建函数 ( 嵌套或局部函数 )。
5、Dart 没有权限关键字 public , protected 和 private 。 如果标识符以下划线(_)开头,则它相对于库是私有的。
6、Dart 工具提示两种类型问题:警告和错误。 警告只是表明代码可能无法正常工作,但不会阻止程序的执行。 错误可能是编译时错误或者运行时错误。 编译时错误会阻止代码的执行;运行时错误会导致代码在执行过程中引发异常(exception)。
7、Dart 支持顶级变量,同样变量绑定在类或对象上(静态变量和实例变量)。 实例变量有时称为字段或属性。
8、Dart 代码在运行前解析,指定数据类型和编译时常量,可以提高运行速度。
9、Dart 支持 async/await 异步处理。

4、Dart 优点

1、Dart 语法清晰简洁,性能高,JIT、AOT 编译,响应式。
2、Dart 是 AOT(Ahead Of Time) 编译的,可编译成快速,可预测的本地代码。
3、Dart 可以 JIT(Just In Time) 编译,开发周期快,为 Flutter 热重载提供基础。
4、Dart 可以轻松创建 60fps 运行的流畅动画和转场。
5、Dart 的声明式编程布局,易于阅读和可视化,不需要单独的声明式布局语言,如:XML,JSX。
6、Dart 非常易于学习,具有静态和动态语言,编程人员都熟悉的特性。

5、Dart 关键字

Dart 关键字

abstract:使用关键字 abstract 标识类可以让该类成为抽象类。
as:类型转换
assert:断言
async:让方法异步执行。(如果要使用 async 关键字,则必须要使用 await 关键字)
await:等待异步方法执行完成。
break:中断当前循环语句
case:switch 条件判断语句
catch:捕获异常
class:声明类
const:声明的常量在编译时确定,不可以更改,必须初始化。(在多个地方相同对象的时候,内存中只保留一份数据)
final:声明常量在运行时确定,不可以更改,可以不初始化,但只能赋值一次。
continue:跳过本次循环,进入下一次循环
default:跳出 switch-case 条件语句
deferred:延迟加载
do-while:循环语句
dynamic:任意类型变量
if-else:条件判断语句
enum:枚举
export:将 dart 文件集中导出,其他地方使用时只需要 import 这个入口文件
extends:类的继承
extension:类扩展
external:权限修饰符,只声明方法,声明的方法需要由外部去实现
factory:工厂构造函数
false、true:bool 值
finally:抛出异常时最终执行语句
for:循环语句
for-in:循环语句
Function:函数对象
get/set:给属性添加 getter/setter
hide/show:隐藏/显示代码库的一部分
implements:实现接口类
import:导入类
is:判断对象是否是指定类型
late:标记为延迟初始化
library:定义库
mixin:混入,实现类似多继承功能
with:使用 with 关键字并在其后跟上 Mixin 类的名字来使用 Mixin 模式
new:创建对象
null:空
on:限制 Mixin 的使用范围。
operator:重写操作符
part:将一个 library 分割成多个 Dart 文件
required:标记一个命名参数是必须参数
rethrow:可以将捕获的异常再次抛出
throw:抛出异常
return:返回
static:静态变量
super:引入父类方法
this:指当前实例
try:捕获异常
typedef:创建类型别名
var:局部变量,类型不定
void:无返回值
while:循环
yield:通过在函数上加 sync* 关键字并将返回值类型设置为 Iterable 来实现一个同步生成器函数,在函数中使用 yield 语句来传递值

6、基本数据类型

num、double、int、String、List、Set、bool、map、Object、dynamic、Rune (用于在字符串中表示 Unicode 字符)、Symbol(声明的运算符或者标识符)。
注:

///类型转换
// String -> int
var one = int.parse('1');
// String -> double
var onePointOne = double.parse('1.1');
// int -> String
String oneAsString = 1.toString();
// double -> String
String piAsString = 3.14159.toStringAsFixed(2);

///int 特有的传统按位运算操作,移位(<<, >>),按位与(&)以及 按位或(|)。 例如:
assert((3 << 1) == 6); // 0011 << 1 == 0110
assert((3 >> 1) == 1); // 0011 >> 1 == 0001
assert((3 | 4) == 7); // 0011 | 0100 == 0111

7、Dart 内置库

内置库
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Dart基础系列: Dart简介 Dart语法(上) <基础>Dart语法(下) 一、简介 1、概述: Dart是...
    玉圣阅读 1,872评论 0 6
  • 说明 Dart的变量跟其他语言,有些不同,对于了解别的语言的人,有些是值得注意的。 1.1 var和val 类似于...
    逃离_102阅读 398评论 0 1
  • 说明 Dart是一种真正的面向对象的语言,所以即使是函数也是对象,并且有一个类型Function。这意味着函数可以...
    逃离_102阅读 250评论 0 1
  • 前文链接: Dart简介 Dart语法(上) 内容: 函数(方法)函数定义及各类函数;函数参数;闭包 面向对象定义...
    玉圣阅读 2,403评论 0 2
  • 类 Dart是一种面向对象的语言,具有类和基于mixin的继承。每个对象都是一个类的实例,所有类都来自Object...
    LineCutFeng阅读 899评论 0 1