1
Lambda trong C++ là gì?
0
Văn Nguyễn0 đã đăng:

Lambda trong C++ là gì? Khi nào thì nên sử dụng Lambda?

thêm bình luận...
2
minhkiet150 đã đăng:

Mình ví dụ một hàm đơn giản trong C++ như cộng hai số nguyên

int CongHaiSoNguyen(int a, int b){
    return a + b;
}

Khi đó, thay vì viết hàm như trên bạn có thể viết một cách ngắn gọn hơn như sau

auto CongHaiSoNguyen = [=](int a, int b) {return a + b;};

Ví dụ với a = 2, b = 3 thì kết quả trả về của hai hàm đều cùng bằng nhau. Ở trên mình sử dụng kiểu dữ liệu trả về là auto đó chẳng qua là xác định tự động kiểu dữ liệu trả về được hỗ trợ bởi phiên bản mới của C++ mà thôi.

Cách viết thứ hai gọi là biểu thứ Lambda (Lambda expression) trong C++, cấu trúc của một biểu thức lamda như sau,

[] () {};

Trong đó:

  • [] tạm gọi là danh sách trả về, ví dụ như bạn muốn trả về một giá trị thì sử dụng dấu = trong dấu ngoặc vuông như trên [=], nếu bạn muốn trả về một tham chiếu thì sử dụng dấu & khi đó sẽ là [&], còn một số kiểu trả về khác mình tạm thời không bàn tới ở đây.
  • () gọi là danh sách các tham số truyền vào, trong ví dụ ở trên mình sử dụng hai tham số truyền vào đó là hai số nguyên ab.
  • {} chứa mã nguồn thực hiện một nhiệm vụ nào đó, trong ví dụ ở trên là thực hiện cộng hai số nguyên.

Bạn nên sử dụng biểu thức lambda khi biểu thức đó đơn giảnngắn gọn. Đối với những hàm tính toán phức tạp thì tốt nhất là nên khai báo hàm tương tự như cách 1.

Hy vọng sẽ trả lời được câu hỏi của bạn.

C++ cũng không high level lắm cho nên nhìn cái lambda syntax của nó hơi phức tạp nhỉ, lambda trong mấy ngôn ngữ bậc cao khác đơn giản hơn nhiều.

Cộng đồng 30.12.2021

Ngôn ngữ nào mà không vậy, mới đầu nhìn không quen thì thấy phức tạp thôi.

Cộng đồng 08.01.2022
thêm bình luận...
Bạn đang thắc mắc? Ghi câu hỏi của bạn và đăng ở chế độ cộng đồng (?)