第一天在F#工作.我在Haskell度过了一段时间,并且正在尝试学习F#以使用一些现有的.net代码.为什么这段代码对我生气了?什么相当于:t?如何向main添加类型注释?
type Color = Red | Green
[<EntryPoint>]
let main =
let a = Red
if a = Red then
printfn "hi!"
else
printfn "no!"
Run Code Online (Sandbox Code Playgroud)
具有[<EntryPoint>]
属性(例如main
)的函数的签名应该string[] -> int
在您的版本中,它缺少string[]
参数和类型的返回值int
您可以通过添加以下内容来解决此问题:
type Color = Red | Green
[<EntryPoint>]
let main argv = //argv added here is inferred to be string[]
let a = Red
if a = Red then
printfn "hi!"
else
printfn "no!"
0 //Return 0, all OK
Run Code Online (Sandbox Code Playgroud)
没有0
最后返回int
,你返回unit
(结果printfn
).