Module 给定模块的所有子模块是否可以在F#中的一条语句中打开?
我在我的应用程序的某个部分有类似的内容:Module 给定模块的所有子模块是否可以在F#中的一条语句中打开?,module,f#,Module,F#,我在我的应用程序的某个部分有类似的内容: open ModuleX open ModuleX.Submodule1 open ModuleX.Submodule2 open ModuleX.Submodule3 open ModuleX.Submodule4 open ModuleX.Submodule5 open ModuleX.Submodule6 有什么简单的方法可以做到: open ModuleX open ModuleX.* 在我的应用程序中,最糟糕的情况是模块有27行模块开头语句
open ModuleX
open ModuleX.Submodule1
open ModuleX.Submodule2
open ModuleX.Submodule3
open ModuleX.Submodule4
open ModuleX.Submodule5
open ModuleX.Submodule6
有什么简单的方法可以做到:
open ModuleX
open ModuleX.*
在我的应用程序中,最糟糕的情况是模块有27行模块开头语句。我可以把它分解成不同的文件,但我只会把开口分解成不同的文件,而不是真正解决任何问题。你会建议“合并”子模块吗?自动打开对我来说不合适
或者这只是任何从事F#工作的人都必须处理的事情?在打开时无法控制这一点,但您可以使这些模块在其声明点“自动打开”。为此,请使用
[]
装饰它们:
模块A=
[]
模块B=
设x=5
模块C=
设y=6
开
设z=x//x现在可用
让u=C.y//y仍然需要合格的访问权限
购买[]
的人也喜欢[]
:-)
[]
模块C=
设y=6
打开C//编译器错误
在打开时无法控制这一点,但您可以使这些模块在其声明点“自动打开”。为此,请使用[]
装饰它们:
模块A=
[]
模块B=
设x=5
模块C=
设y=6
开
设z=x//x现在可用
让u=C.y//y仍然需要合格的访问权限
购买[]
的人也喜欢[]
:-)
[]
模块C=
设y=6
打开C//编译器错误
好吧,我想我必须尝试自动打开。。。也许我喜欢。当有一行开头写着“买东西的人…”时,你怎么能不提高投票率呢嗯,我想我得试一下自动打开。。。也许我喜欢。当有一行开头写着“买东西的人…”时,你怎么能不提高投票率呢
module A =
[<AutoOpen>]
module B =
let x = 5
module C =
let y = 6
open A
let z = x // x is now available
let u = C.y // y still requires qualified access
[<RequireQualifiedAccess>]
module C =
let y = 6
open C // Compiler error