当库名称带有“_”前缀时,它对其库来说是私有(private)的。 dart vm 实际上是如何实现这种隐私的?
最佳答案
在内部,VM 会在变量名称后添加库特有的字符串后缀,因此 _foo
可能会变为 _foo@1238fa12
。 @
确保它不会与用户变量发生冲突,因为 @
在普通标识符中无效。附加字符串后,VM 可以将该变量视为完全正常的变量,并且由于没有其他库可能引用该变量,因此它实际上是库私有(private)的(尽管可能有一些极端情况需要对私有(private)名称更加聪明)。
这并不是唯一可能的实现策略,但私有(private)变量从一开始就被设计为使该策略成为可能。
关于dart - Dart 如何在幕后实现图书馆隐私?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29104439/