在D编程语言中,有什么区别
private import tango.io.File;
Run Code Online (Sandbox Code Playgroud)
和
import tango.io.File;
Run Code Online (Sandbox Code Playgroud)
?
有一段时间public默认进口; 也就是说,当您导入另一个模块,它的内容将不仅是从你的模块中,还从进口任何模块可见你的模块.
最后,它被更改为private默认情况下.
但是,有几个原因需要手动指定private:
public如果它们在public上下文中,则可以进行导入.例如:
public:
// Lots of stuff
import blah; // oh no, everyone can see my imports!
Run Code Online (Sandbox Code Playgroud)DMD充斥着与导入相关的错误.例如,选择性导入默认是公开的,尽管据称是私有的.这可能导致各种可怕的噩梦场景,其中一个模块中公开导入的符号(错误地)会导致完全不同模块中的符号简单地消失并破坏您的程序.
换句话说,他们可能private在Tango,因为开发人员与DMD合作的时间太长,不能相信它能让这些东西正确.