Подтвердить что ты не робот

Разница между выражением лямбда и выражением лямбда

Есть ли разница между лямбда-выражением и лямбда-выражением?

Если так, то в чем разница?

Нашел этот вопрос в ссылке ниже, но не смог понять ответ. Что такое Expression Lambda?

С# интервью Вопросы

Ответ, упомянутый в этой ссылке: лямбда-выражение с выражением справа, называется лямбда-выражением.

В моем понимании выражение всегда только в правой части. Вот почему я задаю этот вопрос. Есть ли что-то, о чем я не знаю?

4b9b3361

Ответ 1

Это действительно путаный жаргон; мы не могли придумать ничего лучшего.

Лямбда-выражение - это общий термин для любого из них:

x => M(x)
(x, y) => M(x, y)
(int x, int y) => M(x, y)
x => { return M(x); }
(x, y) => { return M(x, y); }
(int x, int y) => { return M(x, y); }

Первые три являются выражениями lambdas, потому что правая часть лямбда-оператора является выражением. Последние три представляют собой оператор lambdas, поскольку правая часть лямбда-оператора является блоком.

Это также иллюстрирует, что для левой стороны есть три возможных синтаксиса: либо одно имя параметра, либо скопированный список нетипизированных параметров, либо список типизированных параметров в скобках.

Ответ 2

Да, есть - или я должен, вероятно, сказать, что один определяет другой.

A лямбда-выражение позволяет назначать простые анонимные функции.

выражение lambda - это тип лямбда, который имеет выражение справа от лямбда-оператора.

Другим типом лямбда-выражения является оператор lambda, поскольку он содержит блок-оператор {...} в правой части выражения.

  • Выражение lambda принимает форму: number => (number % 2 == 0)
  • Заявление lambda принимает форму: number => { return number > 5 }

Ответ 3

Выражение лямбда - это синтаксис, который позволяет вам создавать функцию без имени непосредственно внутри вашего кода в качестве выражения.

В зависимости от их тела существуют два вида лямбда-выражений:

  • выражение lambdas, тело которого является просто выражением, например. (i, j) => i + j
  • выражение lambdas, тело которого является полным выражением, например (i, j) => { return i + j; }

Ответ 4

выражение lampda является анонимной функцией, которую компилятор может либо превратить в Func<T>, либо Expression<Func<T>> (выведенный компилятором в зависимости от использования).

Не совсем понятно, что вы подразумеваете под "выражением lamdba", но если вы слышали фразу в подкасте/веб-трансляции или что-то такое, то это, вероятно, относится к выражению лямбда. Или это может быть свойство Expression.Lambda, которое вы используете для получения лямбды из экземпляра Expression.