我可以用F#interactive做到这一点,它运行正常:
> printf "%d\n" 5;;
5
val it : unit = ()
Run Code Online (Sandbox Code Playgroud)
但如果我在"真正的"F#项目中做同样的事情:
let main argv =
printf "%d\n" 5
Run Code Online (Sandbox Code Playgroud)
我尝试编译时遇到此错误:
Type mismatch. Expecting a
'a -> int
but given a
'a -> unit
The type 'int' does not match the type 'unit'
Run Code Online (Sandbox Code Playgroud)
将语句包装ignore()或管道化为ignore(|> ignore)也不起作用.
这是一个语义错误,但我不知道如何推理它,谷歌没有帮助.
为什么它在F#交互式工作而不是在实际的F#项目中工作,为什么它在语义错误?
| 归档时间: |
|
| 查看次数: |
238 次 |
| 最近记录: |