Lambda Fonksiyonları Bölüm 2
Coddy'nin GDScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 55 / 78.
Tek satırlık bir lambda, sonucunu üçlü işleçle seçebilir: value_if_true if condition else value_if_false:
var check_age = func(age): return "Adult" if age >= 18 else "Minor"
print(check_age.call(20)) # Adultİkiden fazla durum için, else sonrasına ikinci bir üçlü operatör ekleyin ya da lambda'yı if ve elif içeren bir blok olarak yazın:
var grade = func(score):
if score == 100:
return "Perfect"
elif score >= 60:
return "Pass"
return "Fail"
print(grade.call(75)) # PassLambda bir değer olduğundan, onu bir fonksiyona aktarabilirsin. Parametreyi Callable türüyle tanımla ve call() ile çalıştır:
func apply_twice(fn: Callable, value):
return fn.call(fn.call(value))print(apply_twice(func(n): return n + 3, 1)) # 7Adlandırılmış bir fonksiyon da aynı şekilde aktarılabilir: apply_twice(double, 5) örneğindeki gibi adını parantez olmadan yaz.
Yerleşik yöntemler de fonksiyonları kabul eder. sort_custom(), iki öğe alan ve ilk öğenin önce gelmesi gerektiğinde true döndüren bir lambda ile bir diziyi sıralar:
var scores = [40, 90, 75]
scores.sort_custom(func(a, b): return a > b)
print(scores) # [90, 75, 40]Bir lambda, çevresindeki yerel değişkenleri okuyabilir, ancak oluşturulduğunda bu değişkenlerin değerlerini kopyalar. Daha sonra böyle bir değişkeni değiştirmek lambda'ya yansımaz ve lambda'nın içinde ona değer atamak da dışarıdaki değişkeni değiştirmez.
Görev
KolayProgram bir tam sayı okur. Bir lambda oluşturun ve bunu categorize_number adlı bir değişkende saklayın. Lambda bir sayı alır ve şunları döndürür:
- Sayı
0'dan büyüksePositive - Sayı
0iseZero - Sayı
0'dan küçükseNegative
Okuduğunuz sayıyla lambda'yı çağırın ve sonucu yazdırın. Girdi 10 olduğunda çıktı şöyledir:
PositiveKendin dene
extends Node
func _ready():
var number := int(OS.read_string_from_stdin())
# categorize_number lambda ifadesini burada oluşturun
# Onu number ile çağırın ve sonucu yazdırın
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1String’leri Derinlemesine İnceleme
String MetotlarıString’lerde AramaDeğiştirme ve KırpmaBölme ve BirleştirmeTekrar: Kullanıcı Adı Kontrolü4Sözlükler Bölüm 2
İç İçe SözlüklerSözlük DizileriSözlükleri BirleştirmeSözlükleri KopyalamaTekrar - Frekans Sayacı10İleri Düzey Fonksiyonlar
Birden Fazla Değer DöndürmeLambda Fonksiyonları Bölüm 1Lambda Fonksiyonları Bölüm 2Tekrar - Lambda ile SıralamaÖzyinelemeli Fonksiyonlar Bölüm 1Özyinelemeli Fonksiyonlar Bölüm 2Tekrar - İç İçe Dizilerin Toplamı13Envanter Yönetim Sistemi
Projeye Genel BakışÜrün Ekle2İleri Düzey Karar Verme
Değişkenlerle EşleştirmeEşleştirme KoşullarıDizi KalıplarıSözlük KalıplarıÜyelik KontrolleriÖzet - Komut Ayrıştırıcı5Rehber Uygulaması
Menüyü GörüntüleKişi Ekle8Öğrenci Kayıt Yöneticisi
Proje Genel BakışıÖğrenci Ekle11Üst Düzey Fonksiyonlar
map Metodufilter Metodureduce Metoduany ve allTekrar - E-posta DoğrulayıcıTekrar - Sayı İşleyici3Çok Boyutlu Diziler
2B Dizilere Giriş2B Dizi Elemanlarına Erişim2B Dizilerle İç İçe DöngülerTekrar - 2B DizilerDüzensiz DizilerYaygın 2B Dizi ÖrüntüleriTekrar - Oyun Tahtası6Sözlüklerle Kümeler
Küme Nedir?Küme Olarak SözlükEkleme ve SilmeBirleşim ve KesişimKüme FarkıTekrar: Yinelenenleri Silme9Gelişmiş Veri Toplama
Değerleri ToplamaEn Küçük ve En Büyük Değeri BulmaÖzel SıralamaÖzet - Sözlük SıralayıcıKendi başına pratik yap: Online GDScript derleyicisi