我试图使用 fsi 文件来允许在单独的文件中相互递归类,但我的 fsi 文件未编译。下面是一个演示该问题的简单示例。
文件program.fs:
module mod1
type first =
|zero = 0
文件File1.fs:
module mod2
type second =
|zero2 = 0
编译用--sig:signature.fsi
产生:
#light
module mod1
type first =
| zero = 0
module mod2
type second =
| zero2 = 0
哪一行有错误
type second
Which is
Error 1 Unexpected keyword 'type' in signature file. Expected ':', '=' or other token.
您可能认为这就是签名文件的用途(如 C++ 头文件),但事实并非如此。至少,我一开始是这么想的。
在 F# 中定义相互递归类型的唯一方法是将它们放在同一个源文件中并使用and
关键词:
module mod1_mod2
type first =
| zero = 0
and second =
| zero2 = 0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)