技术概论
Dart是一种基于类的新式编程语言,用来创建结构化的Web应用。 Dart的目标是开发的建议性、高效性、可扩展性,它整合了几种新的语言特性,具有清晰易读的语法。
Note: 本文是该语言及其开发环境的早期预览。现在可能还没有一些元素,并且我们会根据反馈来调整细节。
关键特性
关键特性包括:
类
类和接口为高效定义API提供了易懂的支持机制。这样的设计使得能够封装和复用方法和数据。
可选类型
Dart开发者能够有选择的为代码添加静态类型。根据程序员的爱好和开发平台,通过归类代码可以从简易的、未定义类型的试验原型迁移到复杂的、模块化的应用上。 由于没有文档会要求解释代码中的类型到底发生了什么,类型检测工具只是用来调试的。
库
开发者可以创建任何用户库,在运行过程中不会发生改变的。独立开发的代码片段可以以来共享库。
工具
Dart将会包括大量可执行环境、库、开发工具来支持语言。这些工具使得多产和动态开发成为可能,包括“编辑继续”调试和“超越”风格,运行时会在空白处填充。
设计目标
这里看到的Dart语言还是早期的。以下目标会引导我们改进并精炼开源项目。:
· 创建结构化并且灵活的 web编程语言.
· Dart是轻松易学的 .
· 所有Dart语言结构具有高性能 和快速建立能力 .
· Dart适合所有的web设备 —--电话,平板,笔记本,服务器.
· 提供工具使得Dart在所以主流浏览器上快速运行 .
这些目标解决了以下问题:
· 小脚本经常发展为没有明显结构的大型Web应用—它们很难调试和维护,另外,这些应用不能被分立为几个小问题来单独解决。应用很大后生产力很底下。.
· 脚本语言流行的原因是它们的轻量级和编写代码的快速性。一般地,应用中不同结果的整合使用注释而不是语言结构本身。结果除了作者,别人很难维护。
· 对于现存语言,开发者需要选择到底是用静态的还是动态的。传统的静态语言需要重量级的工具链和编程风格。
· 开发者还不能创建包括客户端和服务器的均衡系统,仅仅除了Node.js和Google Web Toolkit (GWT).
· 不同的语言和格式使得代码很累赘和复杂.
代码演示
下面是一些代码判断,可以大致了解一下Dart.
类和接口
Dart的接口和类提供了很多积木式结果可以复用和封装。一个interface 定义一个方法和常量的集合,有时候可以从其他接口继承。一个class 可以实现多个接口但是只能继承一个父类。
下面定义了一个接口,并定义了一个类和子类来实现:
1. interface Shape {
2. num perimeter();
3. }
4.
5. class Rectangle implements Shape {
6. final num height, width;
7. Rectangle(num this.height, num this.width); // Compact constructor syntax.
8. num perimeter() => 2*height + 2*width; // Short function syntax.
9. }
10.
11. class Square extends Rectangle {
12. Square(num size) : super(size, size);
13. }
可选类型
Dart混合了静态和动态检测。测试到时候,程序员可以为简单原型不指定类型。随着应用的增大和更稳定,可以添加类型来调试和在需要的地方强加类型。
比如这里用Dart语言新建了一个Point类,有2个参数x和y,有2个方法:scale() 和distance().
1. class Point {
2. var x, y;
3. Point(this.x, this.y);
4. scale(factor) => new Point(x*factor, y*factor);
5. distance() => Math.sqrt(x*x + y*y);
6. }
7.
8. main() {
9. var a = new Point(2,3).scale(10);
10. print(a.distance());
11. }
下面是对上面代码的参数x,y和factor指定了类型为num,Point 包含2个num类型的值:
1. class Point {
2. num x, y;
3. Point(num this.x, num this.y);
4. Point scale(num factor) => new Point(x*factor, y*factor);
5. num distance() => Math.sqrt(x*x + y*y);
6. }
7.
8. void main() {
9. Point a = new Point(2,3).scale(10);
10. print(a.distance());
11. }
怎么使用Dart?
可以安装下面的方法运行Dart:
· 将Dart编译成JavaScript可以运行在任何浏览器:Chrome, Safari 5+, 和Firefox 4+ (并且越来越多)
· 使用Dartboard 编写、编辑、运行在任何浏览器窗口
· 很快: 直接在PC的VM中执行Dart
· 很快: 使用 新 MIME 类型, Dart运行就不需要编译成JavaScript
Note: Dart Editor 支持 Dart-to-JavaScript的编译。命令行工具,比如VM和Dart-to-JavaScript 编译器,并不能直接使用。不过,可以使用Dart project 中的代码构建命令行工具。
Dart编辑器
Dart 编辑器可以用来创建、编辑、运行Dart应用。一次点击就能把Dart编译为JavaScript并在浏览器中运行。Dart编辑器支持自动补全和重构。更多信息查看Dart Editor tutorial .
Dartboard
可以直接到try.dartlang.org 学习Dartboard,代码会运行在远程服务器的Dart VM中 。
更多信息查看 Dartboard & Language Basics tutorial .
新MIME类型
可以把Dart程序直接绑定进HTML 中,或者可以使用#import或#source声明导入外部文件。下面就是规划中的新MIME类型, “application/dart”:
1. <html>
2. <body>
3. <script type="application/dart">
4. main() {
5. Element element = document.getElementById('message');
6. element.innerHTML = 'Hello from Dart';
7. }
8. </script>
9. <div id="message"></div>
10. </body>
11. </html>
库
Dart会提供以下库来支持Web开发:
包括了接口来支持普通的数据结构和操作.
DOM Library
· Iterable
· Map
相关推荐
Dart 语言概览 - v1.0.pdf
dart语言是flutter的核心语言,学习dart更好的学习flutter。 flutter是能够跨平台运行的移动端框架。Google出品,比起react native更有背景。
这是一本讲述Dart语言程序设计的英文书,Dart语言将是javascript 络结语言。速度快效率高。
Dart语言中文教程
Dart编程语言.pdf(高清版)。 本书共9章,前6章是基础,后3章是进阶进行了深入的讲解,本书内容较为深入,不适合初学者,最好接触过其他编程语言。
Dart语言程序设计 英文版,google粉学习Dart,golang必备教材
flutter dart 基础flutter dart 基础
This page shows you how to use each major Dart feature, from variables and operators to classes and libraries, with the assumption that you already know how to program in another language. To learn ...
这是学习Dart语言的第一手材料!在这里您将看到 Dart 各项主要功能的用法,包括变量、运算符、类、库等。本文假定您已经了解如何用其他语言编程。决定权威,不容错过!
Dart语言的语法非常简单,如果过你学习过JAVA或者C#,那么基本可以说没有什么特别的新东西。大地老师讲解的非常详细,但是如果你有语言基础,个人认为没有必要再学习老师的课程,只要看看这个讲义就行了,如果你没有...
Dart语言的Tutorial教程,样例程序,包括每个步骤的代码。
Packt Learning Dart 2nd Edition,学习Dart语言,以Web网页游戏为教程,介绍了Dart语言的强大功能,最新版:第二版
声明异步函数处理 Streams生成器可被调用的类元数据注释单行注释多行注释文档注释总结译者总结一个基本的 Dart 程序下面的代码使用了 Dart 的许多基本
谷歌开发的目标在于替换javascript的一种语言,同时兼容原有的js
第1章 Dart语言概述:Dart语言简介、Dart语言支持平台开发、Flutter为什么选择Dart语言。 第2章 开发环境搭建:下载Dart SDK、Windows下安装Dart SDK、macOS下安装Dart SDK、Visual Studio Code开发工具、IntelliJ ...
#CCompile 是用于编译 C/C++ Dart 语言本机扩展的工具。 这个工具是一个用 Dart 编程语言编写的库。 它基于包,旨在从 Dart 脚本编译 C/C++ 源文件。 要测试它是如何工作的,请运行 。 这将编译名为简单项目。 该...