我是新来的F#。 我所试图做的是调用test
不止一次地打印出Hello World
。 在这个例子中,我想打电话给test
三次。 当我运行的代码只打印到控制台一次。 即使没有test
呼叫,它运行。 我有以下代码:
open System
let test =
let mutable output = ""
output <- "Hello World"
printfn "%s" output
[<EntryPoint>]
let main argv =
test
test
test
ignore(Console.ReadKey())
0
如果你想test
是一个函数,其声明如下:
let test () =
...并这样称呼它:
test ()
甲函数总是接收一个参数,并返回一个值。 当你看到一个以上的参数,这些都是咖喱成一系列的每一个接收一个参数的函数。 这就是为什么你看到这样的签名int -> string -> string
。
如果你没有必要的参数,因为在这种情况下,您使用单位,由代表()
test
,因为它写入不是函数-它是类型的值unit
。 你必须添加括号:
let test () =
let mutable output = ""
output <- "Hello World"
printfn "%s" output
并调用它是这样的:
[<EntryPoint>]
let main argv =
test()
test()
test()
ignore(Console.ReadKey())
0
test
不是一个函数,它是一个变量,所以你不能把它。 你只能访问它的价值,这是()
访问一个值,而不做任何事的,不影响该计划的任何方式的行为,这就是为什么写test
你的main
功能有没有影响。
如果你想能够调用test
,你需要给它一个参数,使之成为功能。 既然你似乎并不真正想要的任何参数,你可以使用unit
作为参数类型。 这将是这样的:
let test () =
let mutable output = ""
output <- "Hello World"
printfn "%s" output
而相应的调用是这样的:
test ()