假设有一组频繁的导入,我不想在每个模块中重复。有没有办法指定可以调用的“频繁导入”。例如:
module frequentImports =
open System
open System.IO
...
然后,不必单独重新键入所有导入,而是可以调用frequentImports模块。显然,上述方法对我来说不起作用,这就是问题的原因。
感谢。
答案 0 :(得分:2)
无法定义类似open
语句组的内容,然后只需引用该组。通常,您只需要为每个文件包含所有open
语句。
你有太多你想要重复的事实可能表明你的代码组织不是最优的 - 我认为如果你通过将逻辑相关的东西放到一个文件中来构建代码,那么每个文件都需要不同的导入。
你可以做的一件事 - 虽然我不认为它很好 - 你可以定义一个模块,并为你通常需要的东西输入别名。
说,如果我想避免打开Microsoft.FSharp.Reflection
和System.Collections.Generic
,我可以为我需要的东西定义一个带别名的模块:
module MyThings =
type Dictionary<'k,'v> = System.Collections.Generic.Dictionary<'k, 'v>
type FSharpType = Microsoft.FSharp.Reflection.FSharpType
type FSharpValue = Microsoft.FSharp.Reflection.FSharpValue
现在使用open MyThings
可以访问这三种类型(同样适用于模块)。也就是说,这不会自动导入所有定义,我认为这可能不值得这样做 - 但它是一种选择。