2010-08-19 24 views

回答

7

有一段時間默認進口爲public;也就是說,當您導入另一個模塊時,其內容不僅可以從模塊內部看到,而且也可以從任何導入模塊的模塊中看到其內容。

最終,它被更改爲默認爲private

然而,有幾個原因來手動指定private

  1. 進口可製成public如果他們是在一個public上下文。例如:

    public: 
    
    // Lots of stuff 
    
    import blah; // oh no, everyone can see my imports! 
    
  2. DMD teems與導入相關的錯誤。例如,選擇性進口是默認公開的,儘管它被認爲是私人的。這可能會導致各種可怕的噩夢場景,其中符號(錯誤地)在一個模塊中公開導入會導致完全不同模塊中的符號消失並破壞您的程序。

換句話說,他們在探戈可能private是因爲開發員們與DMD工作時間過長信任它得到這個東東吧。

+0

+1啊,對,錯誤... – stephan 2010-08-19 07:37:12

+0

點2你說的是D2還是D1? – 2010-08-20 10:46:53

+0

我不使用D2。也就是說,如果D2沒有相同的問題,我會感到有點驚訝; dmd 1.x和dmd 2.x是由相同的源代碼構建的,只是具有不同的預處理器定義。就我所知,導入在1.x和2.x之間並沒有真正改變。 – 2010-08-21 14:54:17

4

在D 2.0中,private importimport同義,而不是public import。默認情況下,導入是私人的。請參閱Modules documentation

編輯:默認情況下,導入也是私人的D 1.0

相關問題