() 然后我收到以下消息: Lint: 'fun _ -> ()' might-6ren">
gpt4 book ai didi

f# - 如何使用 "ignore"重构函数

转载 作者:行者123 更新时间:2023-12-04 22:57:41 26 4
gpt4 key购买 nike

我什么时候应该使用“忽略”而不是“()”?

我试图写以下内容:

let log = fun data medium -> ()

然后我收到以下消息:

Lint: 'fun _ -> ()' might be able to be refactored into 'ignore'.



所以我将声明更新为以下内容:
let log = fun data medium -> ignore

有没有关于为什么我可以使用其中一个的任何指导?

我的直觉告诉我,在执行实际表达式时应该使用忽略。
不过,在这种情况下,我声明了一个高阶函数。

我的假设准确吗?

最佳答案

你在这里得到的 linter 消息有点令人困惑。 ignore function 只是一个接受任何东西并返回单位的函数:

let ignore = fun x -> ()

您的 log功能有点类似于 ignore ,但它需要两个参数:
let log = fun data medium -> ()

在 F# 中,这实际上是一个返回另一个函数(currying)的函数。您可以通过以下方式更明确地写出:
let log = fun data -> fun medium -> ()

现在,您可以看到您的函数的一部分实际上与 ignore 相同。 .你可以写:
let log = fun data -> ignore

这意味着与您的原始功能相同的东西,这就是 linter 的建议。我不会以这种方式编写代码,因为代码的作用不太明显(它实际上需要两个参数) - 我猜 linter 只是在寻找简单的模式,而忽略了一个事实,即有时重构并不是全部有用。

关于f# - 如何使用 "ignore"重构函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38412166/

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