map Metodu
Coddy'nin GDScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 60 / 78.
Yüksek dereceli bir fonksiyon, başka bir fonksiyonu argüman olarak alan bir fonksiyondur. Dizilerin bu türden birkaç fonksiyonu vardır ve map() bunların ilkidir.
map(), bir dizinin her öğesi için bir işlev çağırır ve sonuçları aynı sırayla içeren yeni bir dizi döndürür:
func square(n):
return n * nvar numbers = [1, 2, 3, 4, 5]
var squares = numbers.map(square)
print(squares)[1, 4, 9, 16, 25]Fonksiyonu parantez kullanmadan adıyla aktarın: map(square) fonksiyonu devrederken, map(square()) onu hemen çağırmaya çalışır. map() daha sonra her öğe için onu bir kez çağırır: 1, 1 olur; 2, 4 olur; 3, 9 olur ve böyle devam eder.
Kısa bir hesaplama için lambda, ayrı bir fonksiyon tanımlamanıza gerek bırakmaz:
var squares = numbers.map(func(n): return n * n)Yeni dizi özgün diziyle aynı boyuttadır ve numbers değişmez. Sonuçlar, öğelerden farklı bir türde olabilir:
var words = ["apple", "kiwi", "banana"]
print(words.map(func(w): return w.length()))[5, 4, 6]map(), Array[int] gibi türlendirilmiş bir dizi üzerinde çağrılsa bile düz bir Array döndürür. Bu sonucu Array[int] türünde bir değişkende saklamak programın bir hatayla durmasına neden olur; bu nedenle sonucu türlendirilmemiş bir değişkende veya bir Array içinde saklayın.
split(), map() yöntemi olmayan bir PackedStringArray döndürür. Önce onu bir Array'e dönüştürün: Array("1,2,3".split(",")).map(func(s): return int(s)) ifadesi [1, 2, 3] sonucunu verir.
Görev
Kolayconvert_to_uppercase adlı, strings adlı bir dizge dizisini alan ve her dizgenin büyük harfe çevrildiği yeni bir dizi döndüren bir fonksiyon yazın.
map() metodunu bir lambda ile kullanın ve döngü kullanmayın. Örneğin, convert_to_uppercase(["hello", "world"]) çağrısı ["HELLO", "WORLD"] döndürür.
Testler convert_to_uppercase() fonksiyonunu kendileri çağırır. Siz çağırmayın ve hiçbir şey yazdırmayın.
Kendin dene
func convert_to_uppercase(strings: Array[String]):
# Kodu buraya yazın
pass
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