Pengecoran Tipe: is, as?, as! dan as
Memeriksa dan mengonversi tipe dengan aman menggunakan operator pengecoran Swift.
Pengecoran Tipe: is, as?, as! dan as adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 3 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.
Apa Itu Konversi Tipe
Konversi tipe memungkinkan Anda memeriksa atau mengubah sebuah instance menjadi kelas lain dalam hierarkinya.
class Animal { var name: String = "Animal" }
class Dog: Animal { func bark() { print("Woof") } }
let a: Animal = Dog()
print(a.name)Operator is
Gunakan is untuk memeriksa apakah sebuah instance merupakan subkelas tertentu.
let a: Animal = Dog()
if a is Dog {
print("It's a dog")
}Konversi ke Subtipe dengan as?
as? mencoba mengonversi ke subtipe dan mengembalikan Optional. Jika gagal, hasilnya adalah nil.
let a: Animal = Dog()
if let dog = a as? Dog {
dog.bark()
} else {
print("Not a dog")
}Konversi Paksa ke Subtipe dengan as!
as! memaksa konversi ke subtipe. Gunakan hanya jika Anda yakin dengan tipenya; program akan mengalami kerusakan jika tipenya salah.
let a: Animal = Dog()
let dog = a as! Dog
dog.bark()Konversi ke Supertypes dengan as
Konversi dari subkelas ke kelas induk selalu berhasil dan menggunakan as.
let dog = Dog()
let animal = dog as Animal
print(animal.name)Konversi Tipe dalam Koleksi
Lariks bertipe campuran seperti [Any] memerlukan konversi agar perilaku khusus dapat digunakan.
let items: [Any] = [1, "hello", Dog()]
for item in items {
if let d = item as? Dog { d.bark() }
if let s = item as? String { print(s) }
}Konversi Tipe dengan AnyObject
AnyObject merepresentasikan instance kelas apa pun. Gunakan as? untuk mendapatkan tipe konkretnya.
let objs: [AnyObject] = [Dog(), Dog()]
for obj in objs {
if let d = obj as? Dog { d.bark() }
}Mengonversi Tipe Protokol
Anda dapat mengonversi antara tipe protokol dan tipe konkret menggunakan operator yang sama.
protocol Runnable { func run() }
class Cat: Animal, Runnable { func run() { print("Cat runs") } }
let r: Runnable = Cat()
if let cat = r as? Cat { print(cat.name) }Pencocokan Pola dengan is dalam Pernyataan switch
Pernyataan switch Swift dapat mencocokkan tipe menggunakan pola is.
let value: Any = 42
switch value {
case is Int: print("Integer")
case is String: print("String")
default: print("Other")
}Pola as? dalam Pernyataan switch
Gabungkan switch dengan let x as Type untuk memeriksa dan mengikat nilai dalam satu langkah.
let value: Any = "Swift"
switch value {
case let s as String: print("String: \(s)")
case let i as Int: print("Int: \(i)")
default: break
}Praktik Terbaik Konversi Tipe yang Aman
Selalu utamakan as? daripada as! untuk menghindari kerusakan saat runtime dalam kode produksi.
func describe(_ obj: AnyObject) {
if let dog = obj as? Dog { dog.bark(); return }
print("Unknown type")
}Pemeriksaan Singkat
Operator mana yang mengembalikan Optional saat mengonversi ke subtipe?
Ringkasan Pelajaran
Konversi tipe Swift: is memeriksa tipe, as? mengonversi ke subtipe dengan aman dan menghasilkan Optional, as! memaksa konversi ke subtipe, sedangkan as mengonversi ke kelas induk. Utamakan as? dalam kode produksi.
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 “Pengecoran Tipe: is, as?, as! dan as” gratis?
Ya — teks lengkap “Pengecoran Tipe: is, as?, as! dan as” 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 “Pengecoran Tipe: is, as?, as! dan as”?
Memeriksa dan mengonversi tipe dengan aman menggunakan operator pengecoran Swift. 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 3 dari 4.
Berapa lama pelajaran “Pengecoran Tipe: is, as?, as! dan as” 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
- Pewarisan Class dan Kata Kunci super
- override, final, dan Mencegah Subclass
- Pengecoran Tipe: is, as?, as! dan as
- Deinisialisasi dan Siklus Hidup Memori