作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 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/
命令 svn status 返回如下内容: ? SomeClient\BUTCHERED.docx M SomeClient\Development notes.txt ?
我是一名优秀的程序员,十分优秀!