159 votos

¿Cómo se pronuncia "=>" como se usa en las expresiones lambda en .Net

Rara vez conozco a otros programadores.

Mi pensamiento cuando vi la ficha por primera vez fue "implica eso" ya que es lo que se leería como en una prueba matemática pero claramente no es su sentido.

Entonces, ¿cómo digo o leo "=>" como en:-

IEnumerable<Person> Adults = people.Where(p => p.Age > 16)

¿O hay una forma acordada de decirlo?

148voto

BrightUmbra Puntos 13844

Suelo decir "tal que" al leer a ese operador.

En su ejemplo, p => p.Edad > 16 se lee como "P, tal que p.Edad es mayor de 16".

De hecho, hice esta misma pregunta en los foros oficiales de pre-lanzamiento de linq, y Anders Hejlsberg respondió diciendo

Normalmente leo el operador => como "se convierte" o "para qué". Por ejemplo,
Func f = x => x * 2;
Func test = c => c.City == "Londres";
se lee como "x se convierte en x * 2" y "c para la cual c.City es igual a Londres"

En lo que respecta a "va a" - eso nunca ha tenido sentido para mí. "P" no va a ninguna parte.

En el caso de leerle el código a alguien, digamos, por teléfono, entonces mientras sea un compañero programador de C#, yo usaría la palabra "lambda", es decir, "p lambda p punto edad mayor de dieciséis años".

En los comentarios Steve Jessop mencionó "mapas para" en el caso de las transformaciones, así que tomando el ejemplo de Anders:

x => x * 2;

se leerá

x mapas a x veces 2.

Eso parece mucho más cercano a la intención real del código que "se convierte" para este caso.

56voto

Kent Boogaart Puntos 97432

De MSDN :

Todas las expresiones lambda usan el lambda operador =>, que se lee como "va a".

18voto

Gulzar Nazim Puntos 35342

Leyendo el código por teléfono

De Eric Lippert:

Personalmente diría c=>c+1 como "ver va a ver más uno". Algunas variaciones que he escuchado:

Para una proyección, (Cliente c)=>c.Nombre: "cliente ver se convierte en ver nombre de punto"

Para un predicado, (Cliente c)=>c.Edad > 21: "cliente ver tal que ver punto edad es mayor de veintiuno"

15voto

Aidos Puntos 1440

Siempre lo he llamado el "operador wang" :-)

"p wang edad de p mayor de 16"

7voto

CodeChef Puntos 622

Uso "va a" porque un libro de LINQ me dijo que :)

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X