入门:命令行和服务器应用
按照以下步骤开始使用 Dart SDK 开发命令行和服务器应用。首先,您将在浏览器中试用 Dart 语言,无需下载。然后,您将安装 Dart SDK,编写一个小程序,并使用 Dart VM 运行该程序。最后,您将使用 AOT(*提前*)编译器将完成的程序编译成原生机器代码,然后使用 Dart 运行时执行。
1. 在 DartPad 中试用 Dart 代码
#使用 DartPad,您可以试验 Dart 语言和 API,无需下载。
例如,以下是一个嵌入式 DartPad,它允许您试用一个小“Hello World”程序的代码。点击“运行”以运行应用;输出显示在控制台视图中。尝试编辑源代码——也许您想更改问候语以使用其他语言。
void main() {
print('Hello, World!');
}
更多信息
2. 安装 Dart
#要开发真正的应用,您需要一个 SDK。您可以直接下载 Dart SDK(如下所述)或 下载 Flutter SDK,后者包含完整的 Dart SDK。
您可以使用 APT 在 Linux 上安装 Dart SDK。
执行以下一次性设置
$ 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
安装 Dart SDK
$ sudo apt-get update $ sudo apt-get install dart
使用 Homebrew,安装 Dart 很容易。
$ brew tap dart-lang/dart
$ brew install dart
3. 创建一个小应用
#使用 dart create
命令和console
模板创建命令行应用
$ dart create -t console cli
此命令创建一个小型 Dart 应用,其中包含以下内容
- 一个主要的 Dart 源文件
bin/cli.dart
,其中包含一个顶级main()
函数。这是您的应用的入口点。 - 另一个 Dart 文件
lib/cli.dart
,其中包含应用的功能,并由cli.dart
文件导入。 - 一个 pubspec 文件
pubspec.yaml
,其中包含应用的元数据,包括有关应用依赖于哪些 包以及需要哪些版本的包的信息。
4. 运行应用
#要从命令行运行应用,请使用 Dart VM 通过在应用的顶级目录中运行 dart run
命令
$ cd cli
$ dart run
Hello world: 42!
如果您想在调试支持下运行应用,请参阅 Dart DevTools。
5. 修改应用
#让我们自定义您刚刚创建的应用。
编辑
lib/cli.dart
以计算不同的结果。例如,将先前的值除以二(有关~/
的详细信息,请参阅 算术运算符)dartint calculate() { return 6 * 7 ~/ 2; }
保存更改。
重新运行应用的主入口点
$ dart run Hello world: 21!
更多信息:编写命令行应用
6. 编译以供生产
#以上步骤使用 Dart VM(dart
)来运行应用。Dart VM 针对快速增量编译进行了优化,以便在开发过程中提供即时反馈。现在您的小型应用已完成,是时候将您的 Dart 代码 AOT 编译成优化的原生机器代码了。
使用dart compile
工具将程序 AOT 编译成机器代码
$ dart compile exe bin/cli.dart
请注意编译后的程序如何立即启动并快速完成
$ time bin/cli.exe
Hello world: 21!
real 0m0.016s
user 0m0.008s
sys 0m0.006s
下一步是什么?
#查看以下资源
- Dart 教程
- Dart 语言、库和约定
- 工具和库
- 其他原生编译应用示例
如果您遇到问题,请在 社区和支持 中寻求帮助。
除非另有说明,否则本网站上的文档反映的是 Dart 3.5.3。页面上次更新于 2024-06-10。 查看源代码 或 报告问题。