代码之家  ›  专栏  ›  技术社区  ›  J Cooper

F模块是否可以进行猴接线?

  •  2
  • J Cooper  · 技术社区  · 14 年前

    快速提问。我刚刚读到,如果您想向列表模块等添加一个函数,您可以用该函数定义一个新的列表模块:

    module List
      let foo = // ...
    

    这个有添加的效果吗 foo 到主列表模块,还是必须显式打开 List ?前者看起来像Ruby的“猴子补丁”;我猜后者更像是扩展方法。

    (我想试试这个,但我不接近编译器。)

    2 回复  |  直到 14 年前
        1
  •  4
  •   Brian    14 年前

    它很像名称空间;它们是“开放的”。也就是说,我可能有两个文件或两个程序集将类型贡献到一个名称空间中,然后如果我使用这些文件或引用这些程序集并说

    open ThatNamespace
    

    我看到了所有成员的联合。

        2
  •  3
  •   ChaosPandion    14 年前

    其工作方式类似于扩展方法:

    module List =
        let doSomething lst v = lst |> List.nth v