Dart 是谷歌在 2011 年推出的编程语言,是一种结构化 Web 编程语言,容许用户经过 Chromium 中所整合的虚拟机(Dart VM)直接运行 Dart 语言编写的程序,免去了单独编译的步骤。之后这些程序将从 Dart VM 更快的性能与较低的启动延迟中受益。Dart 从设计之初就为配合现代 web 总体运做而考虑,开发团队也同时在持续改进 Dart 向 JavaScript 转换的快速编译器。Dart VM 以及现代 JavaScript 引擎(V8 等)都是 Dart 语言的首选目标平台。html
每一个变量都是一个对象,每一个对象是一个类的实例。甚至数字,函数,和null都是对象。全部对象都继承自Object类web
指定静态类型(如num前面的例子中)讲清意图,用 tools 开启静态检查,但它是可选的。 (可能注意到当你调试代码,没有指定类型的变量会获得一个特殊的类型: dynamic )编程
Dart解析全部的代码运行以前。能够对Dart提供提示,例如,经过使用类型或编译时间常数来捕获错误或帮助代码运行更快。api
Dart支持顶级函数(如main())也支持类或者对象(静态和实例方法分别支持)里的函数。还能够在函数里建立函数(嵌套或局部功能)。数组
相似的,Dart支持顶级变量,以及依赖于类或对象(静态变量和实例变量)变量。实例变量有时被称为域或属性。异步
与Java不一样,Dart不具有关键字public,protected和private。若是一个标识符如下划线(_)
开始,那么它和它的库都是私有的。async
标识符能够字母或(_)
开始,或者是字符加数字的组合开头。编程语言
有时,判断是一个表达式仍是一个语句会很重要,因此咱们要准确了解这两个单词。ide
Dart tools可报告两类问题:警告(warning)和错误(error)。警告只是迹象代表,代码可能没法正常工做,但他们不会阻止程序的执行。错误能够是编译时或运行时,编译时的错误阻止代码执行;当代码执行时一个运行时的错误会致使一个 异常(exception)被抛出。函数
Dart有两种运行模式:生产 (production) 和检查 (checked) 。咱们建议在检查模式开发和调试,并将其部署到生产模式。
Production mode是Dart程序一个速度优化的默认运行模式。Production mode忽略 断言语句(assert statements) 和静态类型。
abstract | continue | false | new | this |
as |
default | final | null | throw |
assert | deferred | finally | operator | true |
async | do | for | part | try |
async$ | dynamic | get | rethrow | typedef |
await | else | if | return | var |
break | enum | implements | set | void |
case | export | import | static | while |
catch | external | in | super | with |
class | extends | is | switch | yield |
const | factory | library | sync* | yield$ |
上标1的单词是内置的标识符(built-in identifiers)。避免使用表格内的标识做为符标识,并且历来不使用它们做为类(class)或类型(type)的名称。内置标识符存在,以方便从 JavaScript 到 Dart 的移植。例如,若是一些JavaScript代码中有一个名为工厂的变量,当你将代码移植到 Datr 中,你没必要从新命名它。
上标2的单词是的Dart1.0版本以后添加异步支持较新的、有限的保留字。不能使用async,await,或yield做为在标有async,或sync的任何函数体的标识符。欲了解更多信息,请参见 异步性支持(Asynchrony support)。
ex1:
var name = 'along';
变量都是引用,变量name包含对一个String的对象值'along' 的引用
未初始化的变量具备null 的初始值,即便数字类型最初变量也是null,由于数字也是对象。
final和const:
若是从不打算改变一个变量,使用 final 或者 const 代替 var 或者其余类型。一个 final 变量只能被设置一次;一个 const 变量是一个编译时常数。(延迟初始化变量有助于应用程序启动的更快)