小编Phi*_*ong的帖子

我们如何在 C# 中解释 => Something => Something2 => Something3

我正在读 Enrico Buonanno 写的一本名为《C# 函数式编程》的书

public static Validator<T> FailFast<T>
   (IEnumerable<Validator<T>> validators)
   => t
   => validators.Aggregate(Valid(t), (acc, validator) => acc.Bind(_ => validator(t)));
Run Code Online (Sandbox Code Playgroud)

上面代码的原文是:

fail-fast 策略更容易实现:每个验证器都会返回一个 Validation,而 Validation 会暴露一个 Bind 函数,只有当状态为 Valid 时才应用绑定函数(就像 Option 和 Either),因此我们可以使用 Aggregate 来遍历列表验证器并将每个验证器绑定到运行结果。

FailFast 函数接受验证器列表并返回一个验证器:一个期望 T 类型的对象进行验证的函数。收到有效的 t 后,它使用 Valid(t) 作为累加器遍历验证器列表(如果验证器列表为空,则 t 有效),并使用 Bind 将列表中的每个验证器应用到累加器。

一共有三个 => 符号。这让我很难很好地理解代码。有谁熟悉 => 运算符并且可以用简单的英语解释它吗?多谢。

我还检查了文档中的 => 运算符。 https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/lambda-operator但文档中的演示并不像上面的代码那么复杂。

c# lambda function operator-keyword

2
推荐指数
1
解决办法
86
查看次数

标签 统计

c# ×1

function ×1

lambda ×1

operator-keyword ×1