gpt4 book ai didi

f# - 什么是惯用的 F# 等同于声明一个变量供以后在 C# 中使用

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

在 C# 中,我可以声明未初始化的变量,这些变量稍后会在类的各种方法中赋值。例如,在 NUnit 测试中,我可以声明一个类型化变量,该变量仅在设置方法中初始化,然后在各种测试中重复使用。

private MyTestClass sut;

public Setup()
{
sut = new MyTestClass();
etc.
}

public FirstTest()
{
sut.DoSomeWork(1);
}

public SecondTest()
{
sut.DoSomeWork(2);
}

我想在 F# 中做同样的事情。然而根据this和其他人一样,未分配的“变量”在 F# 中不是已完成的事情。

在我的 F# 测试中,测试不在任何类型中,只是在一个模块中所以 [<DefaultValue>] val不会工作。使用 mutable只是感觉不对,因为这似乎是 F# 编码人员的最后选择。

既然 idomatic F# 不应该需要未分配的值,那么解决这个问题的“正确”方法是什么?

最佳答案

您可以使用函数和值。无需声明未分配的变量。

let makeTestClass() =
MyTestClass()
// etc.

let ``First test``() =
let sut = makeTestClass()
sut.DoSomeWork()

let ``Second test``() =
let sut = makeTestClass()
sut.DoSomeWork()

关于f# - 什么是惯用的 F# 等同于声明一个变量供以后在 C# 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46850017/

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