Dart 是谷歌开发的计算机编程语言,后来被 Ecma (ECMA-408) 认定为标准。它被用于 Web、服务器、移动应用和物联网等领域的开发。它是宽松开源许可证(修改的BSD证书)下的开源软件。
Dart 是面向对象的、类定义的、单继承的语言。它的语法类似 C 语言,可以转译为 JavaScript,支持接口(interfaces)、混入(mixins)、抽象类(abstract classes)、具体化泛型(reified generics)、可选类型(optional typing)和 sound type system。
一切皆对象Object 类:它是所有 Dart 对象的基类。因为 Object 是 Dart 类层次结构的根,其他所有 Dart 类都是 Object 的子类。
在 Dart 中,无论是字符串类型还是 Null ,任何保存在变量中的都是一个 对象(Object) ,所有的对象都是对应一个 类(Class) 的实例,且所有对象继承自 Object 类。
强类型准确来说,Dart 属于 强类型 语言,即声明变量前必须确定变量的类型。但需要注意的是,Dart 同样也可以 自动推断类型,就像 JavaScript 一样,你无需声明变量的类型。所以类型注释是可选的,如果要明确说明不需要任何类型, 需要使用特殊类型 dynamic 。
支持泛型Dart 支持泛型,如 List (整数列表)或 List (任何类型的对象列表)。
支持顶级函数Dart 支持顶级函数,例如 main() ,同样函数绑定在类或对象上(分别是静态函数和实例函数)。以及支持函数内创建函数(嵌套或局部函数) 。
支持顶级变量类似地,Dart 支持顶级变量 ,同样变量绑定在类或对象上(静态变量和实例变量),实例变量有时称为字段或属性。
库和可见性与 Java 不同,Dart 没有关键字 public / protected / private 。 如果标识符以下划线开头,则它相对于库是私有的。 标识符以字母或下划线(_)开头,后跟任意字母和数字组合。
关键字避免使用这些单词作为标识符。 但是,如有必要,标有上标的关键字可以用作标识符:
- 带有 1 上标的单词为 上下文关键字, 仅在特定位置具有含义。 他们在任何地方都是有效的标识符。
- 带有 2 上标的单词为 内置标识符, 为了简化将 JavaScript 代码移植到 Dart 的工作, 这些关键字在大多数地方都是有效的标识符, 但它们不能用作类或类型名称,也不能用作 import 前缀。
- 带有 3 上标的单词是与 Dart 1.0 发布后添加的异步支持相关的更新,作为限制类保留字。不能在标记为 async ,async* 或 sync* 的任何函数体中使用 await 或 yield 作为标识符。
关键字表中的剩余单词都是保留字。 不能将保留字用作标识符。
void main(){
print("hello world!");
}
Dart 在线编辑器
传送门,点击 Run 运行代码。