Разница между выражением лямбда и выражением лямбда
Есть ли разница между лямбда-выражением и лямбда-выражением?
Если так, то в чем разница?
Нашел этот вопрос в ссылке ниже, но не смог понять ответ. Что такое Expression Lambda?
С# интервью Вопросы
Ответ, упомянутый в этой ссылке: лямбда-выражение с выражением справа, называется лямбда-выражением.
В моем понимании выражение всегда только в правой части. Вот почему я задаю этот вопрос. Есть ли что-то, о чем я не знаю?
Ответы
Ответ 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.