0Pricing
Swift Academy · Ders

map ve compactMap

Ögeleri dönüştürün ve nil değerlerini ayıklayın.

map ve compactMap, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.

Eşleme Nedir?

map, üst düzey bir işlevdir: bir kapanış alır ve bunu bir dizinin her öğesine uygulayarak dönüştürülmüş sonuçlardan yeni bir dizi döndürür.

  • Özgün koleksiyon asla değiştirilmez
  • Sonuçtaki öğe sayısı her zaman girdi sayısına eşittir
  • Öğe türü değişebilir (ör. Int → String)

Basit Eşleme

Dizideki her sayıyı iki katına çıkarma:

let numbers = [1, 2, 3, 4]
let doubled = numbers.map { $0 * 2 }
print(doubled)  // [2, 4, 6, 8]

Öğe Türünü Değiştirme

Eşleme, Int değerlerini String değerlerine dönüştürebilir:

let ids = [10, 20, 30]
let labels = ids.map { "ID-\($0)" }
print(labels)  // ["ID-10", "ID-20", "ID-30"]

Adlandırılmış İşlevle Eşleme

Yalnızca sondaki kapanışla sınırlı kalmadan, eşleşen imzaya sahip herhangi bir işlevi geçirebilirsiniz:

let words = ["swift", "map"]
let upper = words.map { $0.uppercased() }
print(upper)  // ["SWIFT", "MAP"]

Eşlemenin Çözemediği Sorun

Eşleme her öğeyi korur. Dönüşümünüz isteğe bağlı bir değer döndürüyorsa (başarısız olabilir), [Int?] gibi isteğe bağlı değerlerden oluşan ve daha sonra filtrelemeniz gereken nil boşluklarıyla dolu bir dizi elde edersiniz.

compactMap tam olarak bu sorunu çözer.

compactMap İş Başında

compactMap her öğeyi dönüştürür ve sonucu nil olanları çıkararak isteğe bağlı olmayan bir dizi döndürür:

let raw = ["1", "2", "x", "4"]
let nums = raw.compactMap { Int($0) }
print(nums)  // [1, 2, 4]  -- "x" was dropped

Eşleme ve compactMap Yan Yana

Fark, boş sonuçların korunup korunmamasıdır:

let raw = ["1", "x", "3"]
print(raw.map { Int($0) })       // [Optional(1), nil, Optional(3)]
print(raw.compactMap { Int($0) }) // [1, 3]

Koleksiyondaki İsteğe Bağlı Değerleri Açma

compactMap, isteğe bağlı değerlerden oluşan bir diziden boş değerleri çıkarmanın deyimsel yoludur:

let maybe: [Int?] = [1, nil, 3, nil, 5]
let clean = maybe.compactMap { $0 }
print(clean)  // [1, 3, 5]

compactMap ile Ayrıştırma

Yaygın bir gerçek kullanım: girdinin yalnızca geçerli satırlarını ayrıştırmak:

let lines = ["42", "", "hello", "7"]
let values = lines.compactMap { Int($0) }
print(values)      // [42, 7]
print(values.reduce(0, +))  // 49

Eşleme ve compactMap'i Birleştirme

İşlemleri zincirleyebilirsiniz: veriyi biçimlendirmek için map, yalnızca başarılı sonuçları tutmak için compactMap kullanın:

let scores = ["90", "85", "n/a", "70"]
let passed = scores
    .compactMap { Int($0) }
    .map { $0 >= 80 ? "pass" : "fail" }
print(passed)  // ["pass", "pass", "fail"]

İsteğe Bağlı Zincirlerde compactMap

İsteğe bağlı özellik erişimiyle de mükemmel biçimde çalışır:

struct User { let name: String? }
let users = [User(name: "Ann"), User(name: nil), User(name: "Bo")]
let names = users.compactMap { $0.name }
print(names)  // ["Ann", "Bo"]

Hızlı Kontrol

Öğeleri dönüştürüp boş sonuçları tek adımda kaldıran işlev hangisidir?

Özet

Temel iki dönüştürme işlevini öğrendiniz:

  • map — her öğeyi dönüştürür, sonuçtaki öğe sayısı girdi sayısına eşittir
  • compactMap — dönüştürür ve nil sonuçlarını atar; ayrıştırma ve isteğe bağlı değerleri açma için idealdir
  • Her ikisi de yeni diziler döndürür ve kaynak diziyi asla değiştirmez
  • Veriyi önce biçimlendirip sonra temiz biçimde filtrelemek için bunları zincirleyebilirsiniz

Sırada koşullarla filtreleme var.

Sıkça Sorulan Sorular

“map ve compactMap” dersi ücretsiz mi?

Evet — “map ve compactMap” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.

“map ve compactMap” dersinde ne öğreneceğim?

Ögeleri dönüştürün ve nil değerlerini ayıklayın. Swift Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Swift Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Swift Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“map ve compactMap” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Swift Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Swift Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. map ve compactMap
  2. filter ve Koşul Belirteçleri
  3. reduce ve reduce(into:)
  4. flatMap ve Zincirleme
← Swift Academy Sayfasına Dön