所以我试着做一些简单的事情:
printfn "Enter a number:"
try
let x = System.Console.ReadLine();
Some(int32(x))
with
| :? System.FormatException -> printfn "Invalid number!"
Some(0)我想打印消息,然后让用户输入一个数字,并尝试将其转换为int并返回它。
如果我只是编译代码(通过在命令行上输入fsc a3.fs ),它就能正常工作。它暂停,等待输入,然后返回一些(Int)。
如果我在命令行上将代码复制并粘贴到FSI中,它会工作得很好。
但当我在visual studio中运行FSI (高亮显示+ alt+enter)中的代码时,它只是直接经过输入部分,然后抛出(并捕获)异常。
下面是我在FSI (在visual studio中)中运行时的输出:
Enter a number:
Invalid number!
0正如你所看到的,它实际上不会暂停并等待我输入。
有人知道怎么做吗?
谢谢!
发布于 2011-11-06 05:44:43
如果您将F# interactive作为自己的进程打开(通过直接运行fsi.exe,代码就可以正常工作--下面是我的遭遇:
> printfn "Enter a number:"
- let r =
- try
- let x = System.Console.ReadLine();
- Some(int32(x))
- with
- | :? System.FormatException -> printfn "Invalid number!"
- Some(0)
- ;;
Enter a number:
5
val r : int32 option = Some 5https://stackoverflow.com/questions/8022512
复制相似问题