我正在学习f#并做一个要求用户输入数字的功能.然后,该功能将显示用户输入,如果是正数或负数.但是,当我尝试运行程序时,它会出错,并声明输入是字符串而不是int.我不知道将函数输出转换为字符串的方法.
open System
let sign num =
if num > 0 then "positive"
elif num < 0 then "negative"
else "zero"
let main() =
Console.Write("please enter a number:")
let input = Console.ReadLine()
Console.Write("The number {0}", sign 1)
System.Console.ReadKey() |> ignore
main()
Run Code Online (Sandbox Code Playgroud)
使用.这将解析输入并返回一个int或抛出一个System.FormatException.(int)input
int input
另一种选择是使用Int32的TryParse方法并将结果和成功指示符作为元组返回.您也可以在同一行中解构元组:
let (ok,number)= System.Int32.TryParse input
let message=if ok then
sprintf "The number %i" i
else
sprintf "%s is not a number" input
Console.WriteLine message
Run Code Online (Sandbox Code Playgroud)