用5尝试此简单的控制台输入后,结果显示为53
printfn "Enter no. of blocks: "
let nBlock = System.Console.Read()
printfn "entered value is %O" nBlock
在交互式上尝试过它,仍然得到错误的结果。有什么解决办法吗?
最佳答案
您应该尝试类似的方法:
printfn "Enter no. of blocks: "
let nBlock = System.Console.ReadLine() |> System.Int32.Parse
printfn "entered value is %d" nBlock
说明:
您的代码只能读取一个字符-如Lee所述
这样,您将读取一行(按回车键后结束)并将该字符串解析为int。
备注:也许您将要检查一个数字,可以使用TryParse进行此操作:
printfn "Enter no. of blocks: "
let nBlock =
match System.Console.ReadLine() |> System.Int32.TryParse with
| true, n -> n
| false, _ -> -1
printfn "entered value is %d" nBlock
当然,您将必须检查错误情况(-1)或将其更改为选项或其他内容。
关于f# - 控制台输入提供虚假值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11081509/