我剛碰到一個Haskell模塊,看起來不會導出任何東西。 Schwifty/Swift/M105/Types.hs
:當Haskell模塊沒有聲明任何導出時,這意味着什麼?
module Schwifty.Swift.M105.Types where
該項目還有其他模塊導入它。我認爲Haskell模塊總是不得不聲明他們的出口。當你不這樣做時,這意味着什麼?
我剛碰到一個Haskell模塊,看起來不會導出任何東西。 Schwifty/Swift/M105/Types.hs
:當Haskell模塊沒有聲明任何導出時,這意味着什麼?
module Schwifty.Swift.M105.Types where
該項目還有其他模塊導入它。我認爲Haskell模塊總是不得不聲明他們的出口。當你不這樣做時,這意味着什麼?
您有什麼區別
module Foo() where
)和module Foo where
)。空出口列表表示:不導出值或類型定義。但是,模塊仍然會從模塊本身和所有導入的模塊中導出所有實例聲明,因此具有空導出列表的模塊可能會有用。
完全沒有導出列表意味着:導出模塊本身所做的所有值和類型定義。 (當然也包括所有實例聲明)。
從A Gentle Introduction to Haskell, Version 98:
如果省略模塊關鍵字之後導出列表中,都在模塊的頂層綁定的名稱將出口。