Biểu thức Lambda

Cập nhật ngày: 28/05/2022 - Đã có 1381 lượt xem bài viết này!
Biểu thức Lambda
Biểu thức lambda là một phương cách mới trong việc tạo các hàm vô danh (anonymous). Nó có thể chứa các câu lệnh cũng như các biểu thức khác.

Biểu thức Lambda

Biểu thức Lambda

Biểu thức lambda là một phương cách mới trong việc tạo các hàm vô danh (anonymous). Nó có thể chứa các câu lệnh cũng như các biểu thức khác. Một biểu thức Lambda trả về kết quả của một biểu thức và có dạng như sau:

(input parameters) => expression

 

Dấu mở và đóng ngoặc là tùy chọn trong trong trường hợp chỉ có 1 tham số, ngược lại nó là bắt buộc. Nếu có nhiều hơn 1 tham số thì chúng sẽ được phân cách bằng dấu phẩy (,). Kiểu của các tham số có thể được khai báo tường minh hoặc không, nếu không khai báo, trình duyệt sẽ tự xác định kiểu, tuy nhiên trong một số trường hợp, bạn phải chỉ rõ kiểu của nó, ví dụ:

s => s.Length (lỗi, vì trình dịch không thể biết được s là gì)

bạn khải khai báo như sau:

(string s) => s.Length

Một biểu thức lambda dùng toán tử =>, mang ý nghĩa như là “đi đến”. Phía bên trái của toán tử là các tham số (nếu có), bên phải là các biểu thức hay câu lệnh. Ví dụ như biểu thức lambda x => x * x sẽ tương đương với hàm sau:

int f(int x) {

return x * x;

}

Một biểu thức lambda có thể được dùng để tạo các delegate giống như sau:

 

delegate int del(int i);
del myDelegate = x => x * x;
int j = myDelegate(5);

Toán tử => có cùng độ ưu tiên như phép gán = và được xét từ phải sang trái, do vậy câu lệnh d = x => x * x sẽ có ý nghĩa khác với x => d = x * x. Ở câu lệnh thứ nhất, d sẽ có kiểu delegate và nó đại diện cho biểu thức lambda x => x*x, câu lệnh thứ 2 hoàn toàn là 1 biểu thức lambda, trong đó d sẽ mang giá trị của bình phương giá trị được truyền vào.

Các biểu thức lambda thường được dùng trong các câu truy vấn LINQ như là các tham số của các mệnh đề truy vấn kiểu như Where.

Các biểu thức lambda không được phép xuất hiện bên trái toán tử is hay as. Và các hạn chế của phương thức anonymous cũng được áp dụng cho biểu thức lambda.

Trong phần thân của một biểu thức lambda, bạn có thể thực hiện các lời gọi hàm, tuy nhiên cần chú ý là nếu biểu thức của bạn sẽ được thực thi trong một môi trường khác, kiểu như thực thi bên trong SQL Server, bạn không được dùng các lời gọi hàm vì các phương thức bạn gọi có thể không có ý nghĩa trong môi trường đó. Ví dụ như biểu thức sau có thể sẽ không dùng được nếu được viết bên trong một thủ tục CLR:

(int x) => { MessageBox.Show(x.ToString()); return x * 10; };

Các biểu thức lambda có thể không trả về giá trị, chẳng hạn:

 (string s) =>{ System.Console.Write(s.Length); };

 

Bạn đang muốn tìm kiếm 1 công việc với mức thu nhập cao.
✅ Hoặc là bạn đang muốn chuyển đổi công việc mà chưa biết theo học ngành nghề gì cho tốt.
✅ Giới thiệu với bạn Chương trình đào tạo nhân sự dài hạn trong 12 tháng với những điều đặc biệt mà chỉ có tại IMIC và đây cũng chính là sự lựa chọn phù hợp nhất dành cho bạn:
👉 Thứ nhất: Học viên được đào tạo bài bản kỹ năng, kiến thức chuyên môn lý thuyết, thực hành, thực chiến nhiều dự án và chia sẻ những kinh nghiệm thực tế từ Chuyên gia có nhiều năm kinh nghiệm dự án cũng như tâm huyết truyền nghề.
👉 Thứ hai: Được ký hợp đồng cam kết chất lượng đào tạo cũng như mức lương sau tốt nghiệp và đi làm tại các đối tác tuyển dụng của IMIC. Trả lại học phí nếu không đúng những gì đã ký kết.
👉 Thứ ba: Cam kết hỗ trợ giới thiệu công việc sang đối tác tuyển dụng trong vòng 10 năm liên tục.
👉 Thứ tư: Được hỗ trợ tài chính với mức lãi suất 0 đồng qua ngân hàng VIB Bank.
👉  Có 4 Chương trình đào tạo nhân sự dài hạn dành cho bạn lựa chọn theo học. Gồm có:
1)  Data Scientist full-stack
2)  Embedded System & IoT development full-stack
3)  Game development full-stack
4)  Web development full-stack 
✅ Cảm ơn bạn đã dành thời gian lắng nghe những chia sẻ của mình. Và tuyệt vời hơn nữa nếu IMIC được góp phần vào sự thành công của bạn. 
✅ Hãy liên hệ ngay với Phòng tư vấn tuyển sinh để được hỗ trợ về thủ tục nhập học.
✅ Chúc bạn luôn có nhiều sức khỏe và thành công!

Xem khóa đào tạo nhân sự theo danh mục!

Xem các khóa đào tạo nhân sự