f# - F#:为什么脚本文件不能识别模块?
问题描述
我在 Visual Studio 2015 中创建了一个新的 F# 控制台应用程序项目我创建了一个名为 Calc.fs 的简单新模块文件,如下所示:
module Calc
let add a b = a + b
我向项目中添加了一个 F# 脚本文件,如下所示:
open Calc
let c = add 1 2
我在脚本文件中收到以下编译器错误:
未定义命名空间或模块“Calc”
和
未定义值或构造函数“add”
为什么我的脚本文件无法识别我的模块?我怎样才能解决这个问题?
请注意,我的脚本文件按照项目中文件的顺序出现在模块之后:
解决方案
.fsx 文件不与项目的其余部分一起编译;除非您明确告知他们,否则他们不会“知道”任何其他代码。对于任何外部 DLL(实际上甚至在 .NET Framework 中的许多)以及其他 F# 代码都是如此。
您需要添加
#load "Calc.fs"
在脚本文件的顶部,告诉编译器在评估脚本的其余部分之前加载该代码。
推荐阅读
- git - Git与master合并而不签出到master
- javascript - OpenTok - 如何在 sessionDisconnected 上手动重新连接而不会产生延迟连接
- ms-access-2013 - 为什么我的 Dlookup 函数出现类型错误
- github - GitHub 快照存档的地方(源代码)
- java - `Object` 方法中延迟加载的实体:`toString`、`equals` 和 `hashCode`
- mysql - 按总价值和交易总数查找顶级支付类型
- sql-server - 对创建的变量使用 Where 语句
- docker - 如何docker run,支持Ctrl+C,不结合stderr
- sql - 根据没有主键的映射表设置标志?
- java - 从 CSV 文件中解析 HH:mm:ss