0Pricing
Swift Academy · Pelajaran

flatMap dan Perantaian

Ratakan koleksi bersarang dan rantai transformasi.

flatMap dan Perantaian adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Swift Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Swift Academy mencakup 4 pelajaran total.

Dua Bentuk flatMap

flatMap pada sekuens meratakan satu tingkat penyarangan. Fungsi ini menerapkan fungsi penutup yang mengembalikan sekuens untuk setiap elemen, lalu menggabungkan semua sekuens tersebut menjadi satu larik datar.

Meratakan Larik Bersarang

Ubah larik yang berisi larik menjadi satu larik:

let nested = [[1, 2], [3, 4], [5]]
let flat = nested.flatMap { $0 }
print(flat)  // [1, 2, 3, 4, 5]

flatMap yang Menghasilkan Sekuens

Setiap elemen dapat berkembang menjadi banyak elemen:

let nums = [1, 2, 3]
let expanded = nums.flatMap { [$0, $0 * 10] }
print(expanded)  // [1, 10, 2, 20, 3, 30]

Memasangkan Setiap Kombinasi

flatMap berguna untuk hasil kali silang:

let suits = ["Hearts", "Spades"]
let ranks = ["A", "K"]
let deck = suits.flatMap { suit in ranks.map { "\($0) of \(suit)" } }
print(deck)  // ["A of Hearts", "K of Hearts", "A of Spades", "K of Spades"]

flatMap dibandingkan compactMap

Dahulu flatMap juga membuka nilai opsional, tetapi peran tersebut kini dialihkan ke compactMap. Saat ini:

  • flatMap — meratakan sekuens bersarang
  • compactMap — membuang nil dari hasil opsional

Meratakan Kata Menjadi Karakter

Uraikan setiap string menjadi karakter-karakternya:

let words = ["hi", "yo"]
let chars = words.flatMap { Array($0) }
print(chars)  // ["h", "i", "y", "o"]

Menggabungkan Subhasil

Kumpulkan item dari objek model yang bersarang:

struct Team { let members: [String] }
let teams = [Team(members: ["Ann", "Bo"]), Team(members: ["Cy"])]
let all = teams.flatMap { $0.members }
print(all)  // ["Ann", "Bo", "Cy"]

Merangkai Transformasi

Kekuatan sebenarnya muncul saat Anda merangkai fungsi: map, filter, flatMap, dan reduce terbaca dari atas ke bawah sebagai alur data. Setiap langkah menghasilkan sekuens baru untuk langkah berikutnya.

Alur Data Lengkap

Saring, ratakan, ubah, lalu jumlahkan:

let groups = [[1, 2, 3], [4, 5], [6]]
let result = groups
    .flatMap { $0 }
    .filter { $0 % 2 == 0 }
    .map { $0 * $0 }
    .reduce(0, +)
print(result)  // 4 + 16 + 36 = 56

flatMap lalu compactMap

Ratakan terlebih dahulu, lalu pertahankan hanya nilai yang dapat diurai:

let rows = [["1", "x"], ["3", "4"]]
let nums = rows
    .flatMap { $0 }
    .compactMap { Int($0) }
print(nums)  // [1, 3, 4]

Menjaga Keterbacaan Rangkaian

Letakkan setiap langkah pada barisnya sendiri dan beri nama pada hasil antara ketika rangkaian menjadi panjang. Keterbacaan lebih penting daripada memadatkan semuanya menjadi satu ekspresi.

let names = ["ann", "BO", "cy"]
let titled = names
    .map { $0.lowercased() }
    .map { $0.capitalized }
    .sorted()
print(titled)  // ["Ann", "Bo", "Cy"]

Pemeriksaan Singkat

Apa yang dikembalikan oleh [[1, 2], [3]].flatMap { $0 }?

Ringkasan

Anda telah mempelajari perataan dan perangkaian:

  • flatMap meratakan satu tingkat sekuens bersarang
  • Gunakan compactMap, bukan flatMap, untuk membuang nilai opsional
  • Rangkai filter / map / flatMap / reduce menjadi alur data yang mudah dibaca
  • Satu langkah per baris membuat rangkaian panjang tetap jelas

Kursus selesai! Berikutnya: sekuens tertunda.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “flatMap dan Perantaian” gratis?

Ya — teks lengkap “flatMap dan Perantaian” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Swift Academy, upgrade ke CoddyKit PRO. Kursus Swift Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “flatMap dan Perantaian”?

Ratakan koleksi bersarang dan rantai transformasi. Kamu berlatih Swift Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Swift Academy?

Tidak diperlukan pengalaman sebelumnya. Swift Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “flatMap dan Perantaian” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Swift Academy ini?

Ya. Setiap pelajaran Swift Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. map dan compactMap
  2. filter dan Predikat
  3. reduce dan reduce(into:)
  4. flatMap dan Perantaian
← Kembali ke Swift Academy