Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

381
Visualizações
cómo interpretamos => algo => algo2 => algo3 en C#

Estoy leyendo un libro llamado programación funcional en C# de Enrico Buonanno

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

El texto original con el código de arriba es:

La estrategia a prueba de fallas es más fácil de implementar: cada validador devuelve una Validación, y la Validación expone una función Vincular que solo aplica la función vinculada si el estado es Válido (al igual que Opción y Cualquiera), por lo que podemos usar Agregado para recorrer la lista de validadores y vincular cada validador al resultado en ejecución.

La función FailFast toma una lista de validadores y devuelve un validador: una función que espera que un objeto de tipo T valide. Al recibir la t válida, recorre la lista de validadores utilizando Valid(t) como acumulador (si la lista de validadores está vacía, entonces t es válida) y aplica cada validador de la lista al acumulador con Bind.

Hay tres signos => . Eso me hace difícil entender bien el código. ¿Alguien que esté familiarizado con el operador => y pueda explicarlo en inglés sencillo? Muchas gracias.

También verifiqué => operador en la documentación. https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/lambda-operator pero la demostración en el documento no es tan complicada como el código anterior.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

El => aquí significa cosas diferentes, pero en general cada uno denota una función anónima lambda (con cierre opcional) que se pasa a algún lugar, generalmente como un parámetro en una llamada de función.

Entonces, comience con grandes fragmentos obvios de código como clases y métodos de nivel superior, encuentre mandatos () que indiquen llamadas a funciones, y probablemente será mucho más fácil de entender.

Primero => es una forma abreviada del cuerpo del método (FailFast) para omitir escribir { } en un método pequeño para 'legibilidad' (aquí: dudoso).
Segundo => es una lambda, creada como el valor de retorno de FailFast.
Third => es una lambda, pasada como argumento a Aggregate().
Cuarto => es una lambda, pasada como argumento a Bind().

Agregar algunos paréntesis y agregar corchetes de función de nivel superior para hacerlo más visible:

 public static Validator<T> FailFast<T>(IEnumerable<Validator<T>> validators) { return t => validators.Aggregate(Valid(t), ..secondparam..); }

y el segundo parámetro es:

 (acc, validator) => acc.Bind(...anotherparam...)

y otro parámetro es:

 _ => validator(t)

con t saliendo del ámbito de la lambda a return t=> .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda