F#Main argv和if语句混淆

时间:2016-10-02 15:16:39

标签: f#

EntryPoint的目的是什么? 如何将变量传递给argv以允许它打印出来#34; Hello变量"而不是接收默认的不足的参数?

[<EntryPoint>]
let main argv = 
    if argv.Length >= 1
        then printfn "Hello %s" argv.[0]; 0
        else printfn "Not enough arguments"; 1

1 个答案:

答案 0 :(得分:7)

[EntryPointAttribute]是运行应用程序时要调用的第一个函数:

  

将此属性添加到函数中表示它是入口点   申请。如果没有为EXE指定缺席则   在最后一个文件中的模块绑定中隐含的初始化   编译序列用作入口点。

要在调试时传递值,可以在Project Properties中设置一些参数(假设您使用的是Visual Studio)。

转到项目菜单,然后选择 MyProject属性... ,然后从左侧选择调试页面,您就可以输入你在那里的论点:

Project Properties, Debug

如果您没有使用Visual Studio,那么应该有办法,也可以查阅文档或更新您的问题。

如果您在调试器外部运行,则需要一个cmd窗口,然后只需传递它们:

> MyProject.exe /Arg1