Dart 简介
什么是 Dart?
Dart 是由 Google 开发的客户端优化编程语言,用于在任何平台上构建快速应用程序。它专注于以下方面:
- UI 开发:构建美观、响应式的用户界面
- 跨平台:一次编写,在移动端、Web 和桌面运行
- 生产力:热重载、丰富的标准库和优秀的工具链
- 性能:生产环境使用 AOT(提前编译),开发环境使用 JIT(即时编译)
历史与演进
- 2011 年:Google 在 GOTO 大会上发布 Dart
- 2013 年:Dart 1.0 发布
- 2018 年:Dart 2.0 引入强类型系统
- 2020 年:Dart 2.12 引入健全的空安全
- 2023 年至今:随着 Flutter 的增长持续改进
核心特性
1. 面向对象
Dart 是纯面向对象语言,一切皆对象,包括数字、函数,甚至 null。
2. 强类型系统
Dart 使用静态类型检查和类型推断,在编译时捕获错误,同时保持代码简洁。
3. 空安全
健全的空安全机制防止空引用错误,这是最常见的编程错误之一。
4. 异步编程
内置的 async/await 支持使异步操作处理变得优雅且易读。
5. 丰富的标准库
为集合、I/O、数学等常见任务提供全面的库集合。
6. 优秀的工具链
- DartPad:在线编辑器,用于快速实验
- Dart DevTools:调试和性能分析
- 包管理器:pub.dev 用于共享和使用包
Dart 与 Flutter
虽然 Dart 可用于各种应用程序,但它通过 Flutter(Google 的 UI 工具包,用于构建原生编译应用程序)获得了巨大的流行度。Flutter 专门使用 Dart,使得 Dart 知识对 Flutter 开发者至关重要。
安装
安装 Dart SDK
Windows:
bash
choco install dart-sdkmacOS:
bash
brew tap dart-lang/dart
brew install dartLinux:
bash
sudo apt-get update
sudo apt-get install apt-transport-https
wget -qO- https://dl-ssl.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.googleapis.com/download.dartlang.org/linux/debian stable main' | sudo tee /etc/apt/sources.list.d/dart_stable.list
sudo apt-get update
sudo apt-get install dart验证安装
bash
dart --version你的第一个 Dart 程序
创建一个名为 hello.dart 的文件:
dart
void main() {
print('你好,Dart!');
}运行它:
bash
dart run hello.dart输出:
你好,Dart!开发环境
推荐的 IDE
Visual Studio Code
- 安装 "Dart" 扩展
- 轻量且快速
Android Studio / IntelliJ IDEA
- 安装 "Dart" 插件
- 功能齐全的 IDE,具有出色的调试功能
DartPad(在线)
- 访问 dartpad.dev
- 无需安装
- 非常适合学习和分享代码
Dart 执行模式
1. JIT(即时编译)
- 开发期间使用
- 支持热重载
- 更快的开发周期
2. AOT(提前编译)
- 生产环境使用
- 编译为原生机器码
- 更好的性能和更快的启动速度
基本程序结构
dart
// 导入语句
import 'dart:math';
// 顶级变量
const String appName = '我的应用';
// 顶级函数
void greet(String name) {
print('你好,$name!');
}
// 主入口点
void main() {
greet('世界');
print('随机数:${Random().nextInt(100)}');
}注释
dart
// 单行注释
/*
多行注释
可以跨越多行
*/
/// 文档注释
/// 用于生成 API 文档
void documentedFunction() {
// 函数体
}下一步
现在你已经了解了 Dart 是什么并完成了安装,让我们深入了解基础知识:
祝编码愉快!🎯