Menu
Coddy logo textTech

Lambda İfadelerine Giriş

Coddy'nin C++ Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 42 / 56.

Lambda ifadeleri, küçük ve anonim işlevleri tam da ihtiyaç duyduğunuz yerde oluşturmanıza olanak tanıyan güçlü bir C++ özelliğidir. Bunları, ayrı bir işlev bildirimi yazmak zorunda kalmadan tanımlayıp kullanabileceğiniz mini işlevler olarak düşünebilirsiniz.

Bir lambda ifadesinin temel söz dizimi şu kalıbı izler: [](){}. Köşeli parantezlere [] yakalama cümlesi adı verilir, parantezler () parametreleri tutar (normal işlevlerde olduğu gibi) ve küme parantezleri {} işlev gövdesini içerir.


Yakalama cümlesi, lambda'nın çevreleyen kapsamdaki hangi değişkenleri kullanabileceğini kontrol eder. En yaygın biçimler şunlardır:

[=]: tüm yerel değişkenleri değer ile yakalar (lambda kendi kopyasını alır)
[&]: tüm yerel değişkenleri başvuru ile yakalar (lambda orijinal değişkenlere erişir)
[]: hiçbir şeyi yakalamaz (lambda dışarıdaki hiçbir değişkeni kullanamaz)

Basit bir lambda şu şekilde oluşturulur ve çağrılır:

auto myLambda = []() {
    std::cout << "Hello from Lambda!" << std::endl;
};

myLambda();  // Call the lambda function

Bir lambda'yı bir değişkende saklamadan doğrudan tanımlayıp çalıştırabilirsiniz:

[]() {
    std::cout << "Immediate execution!" << std::endl;
}();

Lambda ifadeleri, özellikle ayrı olarak tanımlamak istemediğiniz kısa ve tek seferlik işlevler için kullanışlıdır. Kodunuzu daha öz hâle getirir ve ilgili mantığı bir arada tutar.

challenge icon

Görev

Kolay

Lambda ifadelerinin temel sözdizimini ve yürütülmesini gösteren bir program oluşturun. Bu meydan okuma, parametreleri olmayan basit lambda işlevlerini nasıl tanımlayıp çağıracağınızı anladığınızı test edecektir.

Programınız şunları yapmalıdır:

  1. Hello from Lambda! yazdıran bir lambda ifadesi oluşturun
  2. Bu lambdayı auto anahtar sözcüğünü kullanarak bir değişkende saklayın
  3. Lambda işlevini yürütmek için çağırın
  4. Lambda executed successfully! yazdıran ikinci bir lambda ifadesi oluşturun
  5. Bu ikinci lambdayı bir değişkende saklamadan hemen yürütün

Aşağıdaki tam çıktı biçimini kullanın:

Hello from Lambda!
Lambda executed successfully!

Lambda ifadelerinin [](){} sözdizimini kullandığını unutmayın; burada köşeli parantezler [] yakalama yan tümcesidir, parantezler () parametreleri içerir (bu meydan okuma için boştur) ve küme parantezleri {} işlev gövdesini içerir. Bir lambdayı auto variableName = [](){...}; kullanarak bir değişkende saklayabilir ve ardından variableName(); ile çağırabilirsiniz. Hemen yürütme için, lambdayı tek bir ifadede tanımlayıp çağıran [](){...}(); sözdizimini kullanabilirsiniz.

Kendin dene

#include <iostream>
using namespace std;

int main() {
    // TODO: Kodunuzu aşağıya yazın
    // Create a lambda expression that prints "Hello from Lambda!"
    // auto anahtar kelimesini kullanarak bir değişkende saklayın
    
    // Lambda fonksiyonunu çağırın
    
    // Create a second lambda that prints "Lambda executed successfully!"
    // Bir değişkende saklamadan hemen çalıştırın
    
    return 0;
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık & Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online C++ derleyicisi