0Pricing
Swift Academy · Pelajaran

Memeriksa Tipe dengan is

Uji tipe suatu instans sebelum melakukan casting.

Memeriksa Tipe dengan is 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.

Operator Pemeriksaan Tipe

Operator pemeriksaan tipe is mengembalikan Bool yang memberi tahu apakah sebuah instans memiliki tipe tertentu atau subtipenya. Operator ini tidak melakukan pengecoran; operator ini hanya menguji.

class Animal {
    let name: String
    init(name: String) { self.name = name }
}
class Dog: Animal {
    func bark() -> String { return name + " says Woof" }
}
class Cat: Animal {
    func meow() -> String { return name + " says Meow" }
}
let a: Animal = Dog(name: "Rex")
print(a is Dog)
print(a is Cat)

Memeriksa Keanggotaan Subtipe

is bernilai benar ketika instans memiliki tipe tersebut secara tepat atau merupakan salah satu subkelasnya. Dog adalah Animal.

class Animal {
    let name: String
    init(name: String) { self.name = name }
}
class Dog: Animal {
    func bark() -> String { return name + " says Woof" }
}
class Cat: Animal {
    func meow() -> String { return name + " says Meow" }
}
let a: Animal = Dog(name: "Rex")
print(a is Animal)
print(a is Dog)

Menggunakan Pemeriksaan Tipe dalam Kondisi

Anda dapat membuat percabangan berdasarkan pemeriksaan jenis dengan if, lalu memilih perilaku berdasarkan jenis saat program berjalan.

class Animal {
    let name: String
    init(name: String) { self.name = name }
}
class Dog: Animal {
    func bark() -> String { return name + " says Woof" }
}
class Cat: Animal {
    func meow() -> String { return name + " says Meow" }
}
let a: Animal = Cat(name: "Mia")
if a is Cat {
    print("It is a cat")
} else {
    print("Not a cat")
}

Menghitung Jenis dalam Koleksi

Salah satu kegunaan praktis is adalah menghitung jumlah elemen yang cocok dengan suatu jenis dalam larik campuran.

class Animal {
    let name: String
    init(name: String) { self.name = name }
}
class Dog: Animal {
    func bark() -> String { return name + " says Woof" }
}
class Cat: Animal {
    func meow() -> String { return name + " says Meow" }
}
let zoo: [Animal] = [Dog(name: "Rex"), Cat(name: "Mia"), Dog(name: "Buddy")]
let dogCount = zoo.filter { $0 is Dog }.count
print("Dogs:", dogCount)

is dengan Protokol

is juga menguji apakah sebuah instans memenuhi protokol, dan mengembalikan true jika ya.

protocol Flyer {}
class Bird: Flyer {}
class Fish {}
let creatures: [Any] = [Bird(), Fish()]
for c in creatures { print(c is Flyer) }

is vs as?

is hanya memberikan jawaban ya atau tidak. as? melangkah lebih jauh dan memberikan nilainya jika Anda perlu menggunakan anggota subkelas.

class Animal {
    let name: String
    init(name: String) { self.name = name }
}
class Dog: Animal {
    func bark() -> String { return name + " says Woof" }
}
class Cat: Animal {
    func meow() -> String { return name + " says Meow" }
}
let a: Animal = Dog(name: "Rex")
print("Check only:", a is Dog)
if let d = a as? Dog { print("Use it:", d.bark()) }

Menjaga dengan is

Gunakan is dalam guard untuk keluar lebih awal ketika sebuah instans bukan jenis yang diharapkan.

class Animal {
    let name: String
    init(name: String) { self.name = name }
}
class Dog: Animal {
    func bark() -> String { return name + " says Woof" }
}
class Cat: Animal {
    func meow() -> String { return name + " says Meow" }
}
func onlyForCats(_ a: Animal) {
    guard a is Cat else {
        print("Skipping non-cat")
        return
    }
    print("Processing a cat")
}
onlyForCats(Cat(name: "Mia"))
onlyForCats(Dog(name: "Rex"))

Menggabungkan is dalam switch

Anda dapat menangani pemeriksaan jenis secara tidak langsung dengan switch, tetapi pencocokan pola menggunakan case is lebih jelas saat menangani beberapa jenis.

class Animal {
    let name: String
    init(name: String) { self.name = name }
}
class Dog: Animal {
    func bark() -> String { return name + " says Woof" }
}
class Cat: Animal {
    func meow() -> String { return name + " says Meow" }
}
let items: [Any] = [Dog(name: "Rex"), 42, "hello"]
for item in items {
    switch item {
    case is Dog: print("a dog")
    case is Int: print("an integer")
    default: print("something else")
    }
}

is Memeriksa Jenis Saat Program Berjalan

is memeriksa jenis sebenarnya saat program berjalan, bukan jenis variabel yang dideklarasikan. Variabel bertipe Animal yang menyimpan Dog lolos pemeriksaan is Dog.

class Animal {
    let name: String
    init(name: String) { self.name = name }
}
class Dog: Animal {
    func bark() -> String { return name + " says Woof" }
}
class Cat: Animal {
    func meow() -> String { return name + " says Meow" }
}
let declaredAsAnimal: Animal = Dog(name: "Rex")
print("Runtime is Dog:", declaredAsAnimal is Dog)

Memvalidasi Sebelum Konversi Paksa

Pola yang aman adalah memeriksa dengan is, lalu baru menggunakan as!, karena Anda telah membuktikan jenisnya.

class Animal {
    let name: String
    init(name: String) { self.name = name }
}
class Dog: Animal {
    func bark() -> String { return name + " says Woof" }
}
class Cat: Animal {
    func meow() -> String { return name + " says Meow" }
}
let a: Animal = Dog(name: "Rex")
if a is Dog {
    let d = a as! Dog
    print(d.bark())
}

Contoh Ringkasan Pemeriksaan Jenis

Secara bersama-sama, is untuk pemeriksaan dan as? untuk konversi memberi Anda perangkat lengkap dan aman untuk menangani jenis saat program berjalan.

class Animal {
    let name: String
    init(name: String) { self.name = name }
}
class Dog: Animal {
    func bark() -> String { return name + " says Woof" }
}
class Cat: Animal {
    func meow() -> String { return name + " says Meow" }
}
let zoo: [Animal] = [Dog(name: "Rex"), Cat(name: "Mia")]
for a in zoo {
    if a is Dog { print("dog:", a.name) }
    if a is Cat { print("cat:", a.name) }
}

Pemeriksaan Singkat

Ingat kembali apa yang dikembalikan operator is.

Ringkasan: Memeriksa Jenis dengan is

Anda telah mempelajari bahwa is mengembalikan Bool untuk keanggotaan jenis saat program berjalan, termasuk subkelas dan pemenuhan protokol; bahwa operator ini cocok digunakan bersama penyaringan dan switch case is; serta bahwa pemeriksaan dengan is sebelum as! membuat konversi paksa menjadi aman.

class Animal {
    let name: String
    init(name: String) { self.name = name }
}
class Dog: Animal {
    func bark() -> String { return name + " says Woof" }
}
class Cat: Animal {
    func meow() -> String { return name + " says Meow" }
}
let zoo: [Animal] = [Dog(name: "Rex"), Cat(name: "Mia"), Dog(name: "Buddy")]
print("Cats:", zoo.filter { $0 is Cat }.count)
print("Dogs:", zoo.filter { $0 is Dog }.count)

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Memeriksa Tipe dengan is” gratis?

Ya — teks lengkap “Memeriksa Tipe dengan is” 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 “Memeriksa Tipe dengan is”?

Uji tipe suatu instans sebelum melakukan casting. 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 “Memeriksa Tipe dengan is” 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. Dasar-Dasar Upcasting dan Downcasting
  2. Casting Kondisional dengan as?
  3. Casting Paksa dengan as! dan Risikonya
  4. Memeriksa Tipe dengan is
← Kembali ke Swift Academy