Dart编程语言深入解析
1. 概述
Dart是一种基于类的、单继承的、纯面向对象的编程语言。它支持可选类型和具体化的泛型以及接口。Dart程序可以进行静态检查,静态检查器会报告一些类型规则的违规情况,但这些违规并不会中止编译或阻止程序执行。Dart程序可以以两种模式之一执行:生产模式或检查模式。在生产模式下,静态类型注解对执行没有任何影响。而在检查模式下,赋值会进行动态检查,而类型系统的某些违反会在运行时引发异常。
Dart程序以模块化的方式组织成称为libraries的单元。库是封装的单元,可以相互递归。生成多个库的副本需要生成一个隔离单元(isolate)。Dart代码总是单线程的,通过类似演员的实体支持并发,这些实体被称为isolates。隔离单元是一种并发单位,它拥有自己的内存和控制线程。隔离单元通过消息传递进行通信,隔离单元之间从不共享状态。隔离单元是通过生成(spawn)创建的。
2. 词法作用域与隐私
Dart是词法作用域的,并且对变量、函数和类型使用单一命名空间。如果在同一个作用域内声明了两个同名的实体,这将是一个编译时错误。内部作用域中的名称可能会隐藏外部作用域中的名称,然而,如果一个声明引入了一个在词法上包含作用域中可用的名称,这将是一个静态警告。
Dart支持两种隐私级别:public和private。如果声明以下划线(字符)开头,则它是private;否则,它是public。声明m是accessible to library L,如果m在L中声明,或者如果m是公共的。这意味着私有声明只能在其声明所在的库中访问。
2.1 词法作用域
Dart是词法作用域的,并且对变量、