当图书馆名称以' _'为前缀时它变得私有了它的图书馆。 dart vm如何实际实现此隐私?
答案 0 :(得分:5)
在内部,VM使用对库唯一的字符串为变量名后缀,因此_foo
可能变为_foo@1238fa12
。 @
确保它无法与用户变量发生冲突,因为@
在普通标识符中无效。在附加字符串之后,VM可以将变量视为完全正常的变量,并且因为没有其他库可能具有对变量的引用,所以它实际上是库私有的(尽管可能有一些极端情况下它需要更加聪明的私人名称。)
这不是唯一可行的实施策略,但私人变量从一开始就设计为使这一策略成为可能。
答案 1 :(得分:0)
据我所知,名称前缀为随机字符串,每个库都是唯一的。