飞镖如何​​在引擎盖下实施图书馆隐私?

imk*_*dal 2 packages private dart

当库名称以"_"为前缀时,它将成为其库的私有名称.dart vm如何实际实现此隐私?

lrn*_*lrn 5

在内部,VM将变量名称后缀为库的唯一字符串,因此_foo可能会变为_foo@1238fa12.的@确保它不能与用户变量碰撞,因为@不处于正常标识符有效.在附加字符串之后,VM可以将变量视为完全正常的变量,并且因为没有其他库可能具有对变量的引用,所以它实际上是库私有的(尽管可能有一些极端情况下它需要更加聪明的私人名称).

这不是唯一可能的实施策略,但私人变量从一开始就被设计为使这种策略成为可能.