gpt4 book ai didi

f# - 为什么我的应用程序从上到下执行

转载 作者:行者123 更新时间:2023-12-04 18:02:25 25 4
gpt4 key购买 nike

我以为我了解 F# 代码执行,但显然我遗漏了一些东西。当我运行以下

#!/usr/bin/env fsharpi

let a =
System.Console.WriteLine("Function A")

let b =
System.Console.WriteLine("Function B")

let c =
System.Console.WriteLine("Function C")

c
b
a

我得到输出:
Function A
Function B
Function C

因此,出于某种原因,它在读取函数时执行函数,而不是按相反顺序执行函数调用。

为什么是这样?

最佳答案

我认为你误解了这条线的意思:

let a =
System.Console.WriteLine("Function A")

它分配 System.Console.WriteLine("Function A")的结果至 a .如果你运行它,你会看到 a键入为 unit :
val a : unit = ()

那时“功能A”已经写入控制台。

您可能想要的是 a成为一个函数而不是一个值:
let a() =
System.Console.WriteLine("Function A")

可以使用 a() 调用它.如果你把所有这些放在一起:
let a() =
System.Console.WriteLine("Function A")

let b() =
System.Console.WriteLine("Function B")

let c() =
System.Console.WriteLine("Function C")

c()
b()
a()

你会得到你所期望的:
Function C
Function B
Function A

关于f# - 为什么我的应用程序从上到下执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42430158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com