Pengenalan Ekspresi Lambda
Termasuk bagian Logika dan Alur dalam perjalanan C++ di Coddy. Pelajaran 42 dari 56.
Ekspresi lambda adalah fitur C++ yang canggih dan memungkinkan kamu membuat fungsi anonim kecil tepat di tempat kamu membutuhkannya. Anggap ekspresi ini sebagai fungsi mini yang bisa kamu definisikan dan gunakan tanpa harus menulis deklarasi fungsi terpisah.
Sintaks dasar untuk ekspresi lambda mengikuti pola ini: [](){}. Tanda kurung siku [] disebut klausa capture, tanda kurung () berisi parameter (seperti fungsi biasa), dan tanda kurung kurawal {} berisi badan fungsi.
Klausa capture mengatur variabel mana dari ruang lingkup sekitarnya yang dapat digunakan lambda. Bentuk yang paling umum adalah:
[=]: menangkap semua variabel lokal berdasarkan nilai (lambda mendapatkan salinannya sendiri)[&]: menangkap semua variabel lokal berdasarkan referensi (lambda mengakses variabel aslinya)[]: tidak menangkap apa pun (lambda tidak dapat menggunakan variabel dari luar)Berikut cara membuat dan memanggil lambda sederhana:
auto myLambda = []() {
std::cout << "Hello from Lambda!" << std::endl;
};
myLambda(); // Panggil fungsi lambdaKamu juga bisa mendefinisikan dan menjalankan lambda secara langsung tanpa menyimpannya dalam variabel:
[]() {
std::cout << "Immediate execution!" << std::endl;
}();Ekspresi lambda sangat berguna untuk fungsi singkat yang hanya digunakan sekali dan tidak ingin kamu definisikan secara terpisah. Ekspresi ini membuat kodemu lebih ringkas dan menjaga logika yang berkaitan tetap berdekatan.
Tantangan
MudahBuat program yang menunjukkan sintaks dasar dan cara menjalankan ekspresi lambda. Tantangan ini akan menguji pemahamanmu tentang cara mendefinisikan dan memanggil fungsi lambda sederhana tanpa parameter.
Programmu harus:
- Membuat ekspresi lambda yang mencetak
Hello from Lambda! - Menyimpan lambda ini dalam variabel menggunakan kata kunci
auto - Memanggil fungsi lambda untuk menjalankannya
- Membuat ekspresi lambda kedua yang mencetak
Lambda executed successfully! - Langsung menjalankan lambda kedua ini tanpa menyimpannya dalam variabel
Gunakan format output berikut secara persis:
Hello from Lambda!
Lambda executed successfully!Ingat bahwa ekspresi lambda menggunakan sintaks [](){}. Tanda kurung siku [] adalah klausa penangkapan, tanda kurung () berisi parameter (kosong untuk tantangan ini), dan kurung kurawal {} berisi isi fungsi. Kamu dapat menyimpan lambda dalam variabel menggunakan auto variableName = [](){...};, lalu memanggilnya dengan variableName();. Untuk menjalankannya langsung, kamu dapat menggunakan sintaks [](){...}(); yang mendefinisikan dan memanggil lambda dalam satu pernyataan.
Coba sendiri
#include <iostream>
using namespace std;
int main() {
// TODO: Tulis kodemu di bawah ini
// Buat ekspresi lambda yang mencetak "Hello from Lambda!"
// Simpan dalam variabel menggunakan kata kunci auto
// Panggil fungsi lambda
// Buat lambda kedua yang mencetak "Lambda executed successfully!"
// Jalankan langsung tanpa menyimpannya dalam variabel
return 0;
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Pointer dan Memori
Apa Itu Pointer?Operator Address-OfOperator DereferencePointer NullPointer dan ArrayMemori Dinamis dengan 'new'Membebaskan Memori dengan 'delete'Rangkuman: Latihan Pointer4Map (Pasangan Kunci-Nilai)
Mengenal std::mapMembuat MapMengakses dan Mengubah NilaiMemeriksa KunciMenghapus PasanganMelakukan Perulangan pada MapRangkuman: Frekuensi Kata7Fungsi Lanjutan
Pass by ReferencePengenalan Ekspresi LambdaLambda dengan ParameterLambda dengan Nilai KembalianPengenalan RekursiFaktorial RekursifPengurutan dengan Lambda2Vektor (array Dinamis)
Memperkenalkan std::vectorMembuat VektorMenambahkan ElemenMengakses ElemenUkuran VektorIterasi dengan for loopFor loop Berbasis RentangMenghapus ElemenRangkuman: Operasi VektorLatihan sendiri: Compiler C++ online