尝试在f#中编写一个简单函数,要求用户在命令行中输入

尝试在f#中编写一个简单函数,要求用户在命令行中输入,f#,F#,这是我的密码: open System let collect_name = Console.Write("Enter Your name: ") let input = Console.ReadLine() printfn input + "Hello" collect_name 当我这样做的时候,我得到了一个错误。如何将输入设置为字符串并将字符串连接到f#中。我是一个彻头彻尾的傻瓜,提前感谢您的帮助。printfn函数

这是我的密码:

open System

let collect_name =
    Console.Write("Enter Your name: ")
    let input = Console.ReadLine()
    printfn input + "Hello"
collect_name   

当我这样做的时候,我得到了一个错误。如何将输入设置为字符串并将字符串连接到f#中。我是一个彻头彻尾的傻瓜,提前感谢您的帮助。

printfn函数需要您想要打印的格式。例如 打印3。因为这是一个整数,您可以:

在您的情况下,您希望打印一个字符串:

printfn "%s" (input + "Hello")
你也可以这样做:

printfn "%s Hello" input
同样的结果

您可以在此处阅读所有可能的格式选项:


printfn函数需要您想要打印的格式。例如 打印3。因为这是一个整数,您可以:

在您的情况下,您希望打印一个字符串:

printfn "%s" (input + "Hello")
你也可以这样做:

printfn "%s Hello" input
同样的结果

您可以在此处阅读所有可能的格式选项:


小调整:您可以通过以下方式删除额外的字符串连接:
printfn“Hello,%s.”输入
小调整:您可以通过以下方式删除额外的字符串连接:
printfn“Hello,%s.”输入
您的代码还有一个小问题。将
let
定义为一个值(无参数)。这意味着,它在你调用它之前就被初始化了,并且初始化了一次。看起来更像是在编写一个可以调用以获取输入的函数。使它成为
让collect\u name()=…
并在某个时候将其称为
collect\u name()
。这将确保您每次调用它时都对它进行计算,而不是只调用一次。您的代码还有一个小问题。将
let
定义为一个值(无参数)。这意味着,它在你调用它之前就被初始化了,并且初始化了一次。看起来更像是在编写一个可以调用以获取输入的函数。使它成为
让collect\u name()=…
并在某个时候将其称为
collect\u name()
。这将确保每次调用它时都对其进行评估,而不是只调用一次。