dart - Dart 如何在幕后实现图书馆隐私?

标签 dart package private

当库名称带有“_”前缀时,它对其库来说是私有(private)的。 dart vm 实际上是如何实现这种隐私的?

最佳答案

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

这并不是唯一可能的实现策略,但私有(private)变量从一开始就被设计为使该策略成为可能。

关于dart - Dart 如何在幕后实现图书馆隐私?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29104439/

相关文章:

encryption - 保护私钥

data-binding - 使父类(super class)字段可见

flutter - 如何在Firestore中更新此内容?

在 R 中加载包时运行脚本(或设置 stringsAsFactors = FALSE)

go - 带有多个文件的包如何在 golang 中工作?

asp.net - 包尝试添加对 GAC 中未找到的 System.Runtime 的引用

sqlite - 我如何解决sqlite数据库E/SQLiteLog(16449)中的此类错误: “Order”附近的(1):语法错误

dart - 如何防止Dart,Dartium中的默认光标样式

.net - 将 .Net 类公开给 COM,同时它具有私有(private)泛型类型成员

methods - 如何使用 PowerMockito 模拟私有(private)方法的任何参数?