Lambda temelleri
- Java kursu
- Orta seviye
- Ders 100/116
- 5 dk
() -> ... ile lambda ifadesini öğrenirsin.
Lambda expression
Lambda expression, küçük bir fonksiyonu tek satırda yazmanın kısa yoludur. Sözdizimi: (parametreler) -> gövde. Parametre yoksa (), tek parametrede parantez isteğe bağlı.
Örnek: Runnable r = () -> System.out.println("Merhaba");. Bu lambda bir Runnable olarak atanır; r.run() çağrıldığında gövde çalışır. Lambda, tek metotlu arayüzlere (functional interface) atanabilir; Java türü arayüzün metot imzasından çıkarır.
Functional interface
Lambda yalnızca functional interface'lere atanabilir; bu, tam olarak bir soyut metodu olan arayüzdür. Runnable buna örnektir: tek run() metodu vardır. Java, lambda gövdesini bu tek metotla eşleştirir.
Birden fazla soyut metodu olan arayüzlere lambda atanamaz. @FunctionalInterface annotation'ı derleyiciyi uyarır; ikinci soyut metot eklenirse derleme hatası verir. Bu, lambda atamalarını güvenli kılar.
Uygulama Runnable lambda yaz
Runnable r = () -> System.out.println("Merhaba"); tanımla. Sonra r.run(); çağrısı ile lambdayı çalıştır. Tek satırda Merhaba yazdırılmalı.
Başlangıç kodu
public class Main {
public static void main(String[] args) {
// Runnable lambda tanimla ve run ile calistir
}
}Örnek çözüm
public class Main {
public static void main(String[] args) {
Runnable r = () -> System.out.println("Merhaba");
r.run();
}
}Beklenen çıktı
Merhaba
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Lambda expression'ın temel sözdizimi nedir?
- function(parametreler) { gövde }
- (parametreler) -> gövde Doğru cevap
- def parametreler: gövde
- lambda gövde end
Açıklama: Lambda (parametreler) -> gövde biçiminde yazılır.
2 Boş parametre lambdasını tamamla
Runnable r = ____ -> System.out.println("Merhaba");
Runnable r = () -> System.out.println("Merhaba");
Açıklama: Parametresiz lambda () ile başlar.
3 Lambda parçalarını eşleştir
| Kavram | Anlamı |
|---|---|
() |
Parametre yok |
-> |
Ok işareti |
gövde |
Çalışacak kod |
Runnable |
Tek metotlu arayüz |