快速的問題。我剛剛讀到,如果你想添加一個功能,例如列表模塊,你可以定義一個新的列表模塊與功能:F#模塊可以猴子修補嗎?
module List
let foo = // ...
,這都增加foo
到主目錄模塊的作用,還是你必須明確地打開新的List
?前者好像是Ruby的「猴子補丁」;我想後者會更像擴展方法。
(我嘗試了這一點,但我不是附近的編譯器。)
快速的問題。我剛剛讀到,如果你想添加一個功能,例如列表模塊,你可以定義一個新的列表模塊與功能:F#模塊可以猴子修補嗎?
module List
let foo = // ...
,這都增加foo
到主目錄模塊的作用,還是你必須明確地打開新的List
?前者好像是Ruby的「猴子補丁」;我想後者會更像擴展方法。
(我嘗試了這一點,但我不是附近的編譯器。)
這是一個很像命名空間;他們是「開放的」。也就是說,我可以有兩個文件或兩個組件有助於類型到一個命名空間,然後如果我使用這些文件或引用這些組件,並說
open ThatNamespace
我看到所有成員的聯合。
這個工作在類似於擴展方法一個時尚:
module List =
let doSomething lst v = lst |> List.nth v