我想将一堆fs文件转换为fsx文件.
每个fs文件引用类都定义在base.fs中,因此不是在项目中编译并依赖于编译器解析,所有都是基于文件的.
这意味着如果我将所有这些文件包含在base.fsx中,并且该文件引用另一个文件,则base.fsx将包含两次.
有谁知道如何使用fsx文件进行条件包含?
该预处理器文档状态
F#中没有#define预处理器指令.必须使用编译器选项或项目设置来定义#if指令使用的符号.
如果您正在从单个fsx
脚本加载所有文件,那么您可以按正确的顺序从项目加载单个文件,并且不需要base.fs
直接加载单个库文件- 将定义代码,因为它已被加载之前.
例如,如果您有base.fs
:
module Base
let test() = 10
Run Code Online (Sandbox Code Playgroud)
你有more.fs
哪些不不加载base.fs
,但使用其中定义的功能:
module More
let more () =
Base.test() + 1
Run Code Online (Sandbox Code Playgroud)
然后你可以加载F#interactive中的所有文件(比如说script.fsx
),它会正常工作:
#load "base.fs"
#load "more.fs"
More.more()
Run Code Online (Sandbox Code Playgroud)
唯一的缺点是在编辑时不会获得IntelliSense more.fs
(因为编辑器不知道base.fs
).要解决此问题,将文件保存在Visual Studio中的项目中可能是个好主意.但您仍然可以在F#interactive中加载它们以进行实验和测试.
归档时间: |
|
查看次数: |
667 次 |
最近记录: |