使用5尝试这个简单的控制台输入后,结果显示为53
printfn "Enter no. of blocks: "
let nBlock = System.Console.Read()
printfn "entered value is %O" nBlock
Run Code Online (Sandbox Code Playgroud)
试图在互动上,仍然得到错误的结果.有解决方案吗?
Car*_*ten 10
你应该尝试类似的东西:
printfn "Enter no. of blocks: "
let nBlock = System.Console.ReadLine() |> System.Int32.Parse
printfn "entered value is %d" nBlock
Run Code Online (Sandbox Code Playgroud)
说明:
你的代码只读取一个字符 - 正如李提到的那样,你将读取一行(按返回后结束)并将该字符串解析为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
Run Code Online (Sandbox Code Playgroud)
当然,您必须检查错误情况(-1)或将其更改为选项或其他内容.