目录
Web 平台的 Dart (使用 JavaScript 开发和部署):
OK,作为一名技术宅,什么都想了解一下,那么这次是谷歌的为跨端开发而生的编程语言Dart的学习记录!
免费 且 开源 ???
Let‘s do it !
一、Dart 语言概述:
Dart 是一种针对客户优化的语言,可在任何平台上开发快速的应用程序。其目标是为多平台开发提供最高效的编程语言,并为应用程序框架搭配了灵活的运行时执行平台。
通常来说,编程语言会包含一些 技术壁垒,即语言在设计中的抉择决定了其功能和优势。 Dart 的语言设计针对客户端开发,它优先考虑多平台 (Web,移动端和桌面端) 上的开发 (亚秒级的状态热重载) 和高质量生产环境体验。
Dart 也是 Flutter 的基础。 Dart 作为 Flutter 应用程序的编程语言,为驱动应用运行提供了环境,同时 Dart 还支持许多核心的开发任务,例如格式化,分析和代码测试。
概述来自官方文档,大概就是这是一门非常nice的一门编程语言,它可以进行跨端开发(PS:什么是跨端开发?就是编写一套代码,实现能够在不同平台上运行!有点类似Java的JVM,事实上他也是一个类似的实现,因为它提供了运行时执行平台)
Dart 语言特点:
Dart 语言是类型安全的;它使用静态类型检查来确保变量的值 始终 与变量的静态类型相匹配。这也叫健全类型。尽管类型是强制性的,但由于 Dart 支持类型推断,类型注释仍是可选的。 Dart 的类型系统也很灵活,允许结合使用 dynamic 类型与运行时检查,在测试开发期间,或是遇到需要特别指定为动态类型的代码时,这项特性很有帮助。
与其他许多空安全语言不同, Dart 提供 健全的空值安全,这意味着只有您声明值可以为空的情况下,值才可以为空;当 Dart 确定变量不可为空时,该变量 永远 不可为空。凭借健全的空值安全,Dart 可以通过静态代码分析在运行时保护您免受空值异常的影响。如果你在调试器中审查正在运行的代码,你会看到不可为空性仍在运行时被保留 (所以是完全空值安全)。
OK,这里提到了一个看空值安全,类似于Rust的变量可变性,大概就是声明的一个所谓的变量其实是不可变的除非显示声明他是一个可变的变量。Dart是在声明一个引用为空时才能为空,否则他是永远不能为空!
Dart 库:
Dart 拥有 丰富的核心库,为许多日常编程任务提供了必要工具:
-
为每个 Dart 程序提供的内置类型,集合与其他核心功能 (
dart:core
) -
更丰富的集合类型,诸如队列、链接列表、哈希图和二叉树 (
dart:collection
) -
用于在不同的数据表示形式之间进行转换编码器和解码器,包括 JSON 和 UTF-8 (
dart:convert
) -
数学常数和函数,以及随机数生成 (
dart:math
) -
为非 Web 应用程序提供的文件、套接字、HTTP 和其他 I/O 支持 (
dart:io
) -
异步编程支持,比如
Future
和Stream
类 (dart:async
) -
能够有效处理固定大小的数据(例如,无符号的 8 字节整数)和 SIMD 数字类型的列表 (
dart:typed_data
) -
用于提供 C 语言风格代码互通性支持的外部函数接口 (
dart:ffi
) -
使用 isolates 的并发编程 — 这些独立的工作程序与线程相似但它们不共享内存并仅通过消息进行通信 (
dart:isolate
) -
基于 Web 的应用程序中需要与浏览器和文档对象模型 (DOM) 交互的 HTML 元素和其他资源 (
dart:html
)
除核心库外,Dart 还通过一整套软件包提供了许多 API。 Dart 团队发布了许多有用的补充包,例如:
此外,第三方发布者和更广泛的社区也发布了上千个软件包,支持诸如此类功能:
你可以访问 库概览,查看关于 Dart 核心库的一系列示例。如果你想要查找其他 API,请参见 常用软件包页面。
Dart 平台:
Dart 的编译器技术可让您以不同的方式运行代码:
-
原生平台:针对面向移动和桌面设备的应用程序, Dart 拥有具有实时 (JIT) 编译功能的 Dart VM 和用于生成机器代码的提前 (AOT) 编译器。
-
Web 平台:针对面向 Web 的应用程序, Dart 拥有开发时编译器 (dartdevc) 和生产时编译器 (dart2js)。两种编译器均能将 Dart 转换为 JavaScript。
Flutter 框架 是一款流行的多平台 UI 工具包,由 Dart 语言强力驱动,提供一套工具和 UI 库,帮助开发者们在 iOS、Android、macOS、Windows、Linux 和 Web 平台构建优秀的 UI 体验。
原生平台的 Dart (JIT 和 AOT 机器码)
在开发过程中,快速的开发周期对于迭代至关重要。 Dart VM 提供了一个实时编译器 (JIT),编译器拥有增量重编译功能 (支持热重载)、运行数据收集(用于驱动 DevTools)以及丰富的开发调试支持。
当应用程序可以部署到生产环境时 (无论是发布到应用程序商店还是部署到生产后端), Dart AOT 编译器提供原生的 ARM 或 x64 机器码的 AOT 编译。经过 AOT 编译的应用程序将稳定快速地启动。
经过 AOT 编译的代码会在高效的 Dart 运行环境中运行,该运行环境拥有健全的 Dart 类型系统,并使用快速对象分配和 分代垃圾收集器 来管理内存。
更多相关信息:
Web 平台的 Dart (使用 JavaScript 开发和部署):
Dart 的 Web 支持让你可以在 JavaScript 驱动的网页平台上运行 Dart 代码。使用 Web 环境下的 Dart 时,你可以将 Dart 编译为在浏览器中运行的 JavaScript 代码,例如: Chrome 中的 V8。
Dart Web 包含了可以实现快速开发周期的增量开发编译器,同时还有用于针对生产环境优化的编译器 dart2js。后者使用了类似移除不可访问代码的技术,将 Dart 代码编译为快速、紧凑、随时随地可部署的 JavaScript。
更多相关信息:
Dart 运行时环境:
不论你在哪个平台上使用、选择如何构建你的代码,执行代码时都需要一个 Dart 运行时环境。这个运行时环境负责下面的关键任务:
-
内存管理: Dart 使用一个受管理的内存模型,未被使用的内存会由垃圾收集器 (GC) 回收。
-
执行 Dart 语言的类型体系: Dart 语言里大多数类型检查都是静态的(编译时),但仍有部分检查是动态的(运行时)。比如,Dart 运行时环境会在遇到 类型判断运算符 时执行动态检查。
-
管理 isolates: Dart 运行时环境会负责控制主 isolate(代码通常在这里运行)以及其他应用创建的 isolate。
在原生平台上,Dart 运行时环境被自动包含在独立的可执行文件中,是 dart run 命令提供的 Dart VM 的一部分。
OK,确实后面也没有太多可以说的东西了,就直接复制官网,链接如下:
二、配置 Dart 开发环境:
获取 Dart SDK 在 Windows环境下:
官网提供的安装方法:
获取 Dart SDK | Dart获得 Dart 命令行工具和库,用以编写 Dart web,命令行以及服务端应用。https://dart.cn/get-dart
打开Windows的CMD命令行窗口:
choco install dart-sdk
输入上述命令,开始安装Dart SDK!
SDK 默认会安装在 C:\tools\dart-sdk
。你可以更改 ChocolateyToolsLocation 环境变量来选择安装目录。
如果安装后你无法使用 Dart SDK 的可执行文件,请将 SDK 的路径添加到 PATH:
-
打开 Windows 搜索,输入
env
。 -
点击 编辑系统环境变量。
-
点击 环境变量(N)…。
-
在用户变量部分,选择 Path 并点击 编辑(E)…。
-
点击 新建(N),输入
dart-sdk
的路径。 -
在每个打开的窗口点击 应用(A) 或 确定,关闭弹窗并应用路径修改。
获取 Dart SDK 在 Linux环境下:
1.更新源信息:
sudo apt-get update
2.安装apt-transport-https
sudo apt-get install apt-transport-https
3.加载配置文件:
wget -qO- https://dl.google.com/linux/linux_signing_key.pub | sudo gpg --dearmor -o /usr/share/keyrings/dart.gpg
echo 'deb [signed-by=/usr/share/keyrings/dart.gpg arch=amd64] https://storage.flutter-io.cn/download.dartlang.org/linux/debian stable main' | sudo tee /etc/apt/sources.list.d/dart_stable.list
4.开始安装Dart:
sudo apt-get update
sudo apt-get install dart
以上是官方提供的下载方式,我试过......Linux貌似不太行......
SO,我下载了,ZIP压缩包:
归档 | Dart下载特定的稳定版、测试版、开发版和主分支开发版的 Dart SDK 和 Dart API 文档。
https://dart.cn/get-dart/archive
下载ZIP包之后,选择一个SDK存放文件路径,配置一下profile文件,再随便source一下配置文件
大概算是安装完成了Dart SDK了吧......
有什么问题欢迎私信或者评论,看到后第一时间回复!加油,各位,共勉!!!