Swift Academy · Pelajaran

Hierarki Sequence/Collection

Pahami Sequence vs Collection (serta Bidirectional/RandomAccess): jaminan traversal, indeks, dan kapan algoritme memerlukan protokol yang lebih kuat.

Pelajaran 1 dari 38 langkah

Hierarki Sequence/Collection adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 3. 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 3 pelajaran total.

Peta hierarki

Susunan protokol iterasi:

  • Urutan: iterasi melalui pengiterasi (mungkin hanya satu lintasan).
  • Koleksi: dapat dilintasi beberapa kali dan memiliki indeks (startIndex/endIndex).
  • BidirectionalCollection: dapat memindahkan indeks ke belakang.
  • RandomAccessCollection: langkah indeks membutuhkan waktu konstan.

Iterasi urutan

Urutan menjamin bahwa Anda dapat mengiterasi elemen sesuai urutan; tidak ada persyaratan tentang indeks atau lintasan berulang.

let seq = [1, 2, 3] as AnySequence<Int>    // wrap as AnySequence for demo
for x in seq { print(x, terminator: " ") }
print("")

Indeks koleksi

Koleksi menambahkan indeks dan memungkinkan penelusuran beberapa lintasan. Anda dapat mengulanginya dengan aman.

let arr = ["a","b","c"]          // Array is a Collection
print(arr.startIndex == 0)            // true for Array
print(arr.endIndex == 3)              // endIndex is "one past last"
for i in arr.indices { print(arr[i], terminator: " ") }
print("")
// Iterate again (multi-pass)
for ch in arr { print(ch, terminator: " ") }
print("")

Kemampuan yang lebih kuat

BidirectionalCollection dapat memindahkan indeks ke belakang. RandomAccessCollection mendukung langkah indeks dalam waktu konstan (misalnya, Array).

let text = "Swift"                         // String is a BidirectionalCollection
var i = text.index(before: text.endIndex)       // move backward
print(text[i])                                   // last character
// Array is RandomAccessCollection: jumping indices is cheap
let nums = [10,20,30,40]
print(nums[nums.startIndex.advanced(by: 2)])     // 30

Urutan khusus

Urutan khusus mungkin hanya dapat digunakan dalam satu lintasan. Setelah diiterasi sekali, pengiterasi dapat habis.

struct Countdown: Sequence, IteratorProtocol {
    var current: Int
    mutating func next() -> Int? {
        guard current >= 0 else { return nil }
        defer { current -= 1 }
        return current
    }
}
var cd = Countdown(current: 3)
for n in cd { print(n, terminator: " ") }   // 3 2 1 0
print("")
// cd is exhausted; iterating again yields nothing (single-pass behavior)

Pilih protokol yang tepat

Panduan:

  • Gunakan algoritme generik pada Urutan jika satu lintasan sudah cukup.
  • Persyaratkan Koleksi untuk lintasan berulang atau operasi indeks.
  • Utamakan RandomAccessCollection untuk algoritme yang sering melompati indeks (misalnya, pencarian biner).

Koleksi vs urutan

Pemeriksaan singkat: Apa yang ditambahkan Koleksi di atas Urutan?

Ringkasan

Ringkasan: Urutan → iterasi dasar. Koleksi → indeks + lintasan berulang. Bidirectional → bergerak ke belakang. RandomAccess → langkah indeks dalam waktu konstan. Pilih protokol terkecil yang sesuai dengan algoritme Anda.

Gratis untuk memulai

Belajar Swift dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
122
Pelajaran
409

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Hierarki Sequence/Collection” gratis?

Ya — teks lengkap “Hierarki Sequence/Collection” 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 3 pelajaran total.

Apa yang akan aku pelajari di “Hierarki Sequence/Collection”?

Pahami Sequence vs Collection (serta Bidirectional/RandomAccess): jaminan traversal, indeks, dan kapan algoritme memerlukan protokol yang lebih kuat. 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 1 dari 3.

Berapa lama pelajaran “Hierarki Sequence/Collection” 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. Hierarki Sequence/Collection
  2. Map/Filter/Reduce, sequence malas
  3. Iterator khusus & kiat performa
← Kembali ke Swift Academy