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

时间:2015-03-17 16:23:34

标签: dart packages private

当图书馆名称以' _'为前缀时它变得私有了它的图书馆。 dart vm如何实际实现此隐私?

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:0)

据我所知,名称前缀为随机字符串,每个库都是唯一的。