0Pricing
Swift Academy · Pelajaran

Inisialisasi Memberwise dan Inisialisasi Kustom

Memahami inisialisasi memberwise yang dibuat otomatis dan menulis inisialisasi kustom.

Inisialisasi Memberwise dan Inisialisasi Kustom adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 1 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.

Selamat datang

Struct Swift memperoleh *penginisialisasi per anggota* gratis yang menerima semua properti tersimpan. Namun, Anda dapat menyesuaikan atau memperluasnya dengan logika penginisialisasi sendiri.

Penginisialisasi Per Anggota yang Dibuat Otomatis

```swift struct Point { var x: Double var y: Double } let p = Point(x: 3.0, y: 4.0) // auto-generated init ``` Anda tidak perlu menulis `init` sendiri—kompilator menyediakannya.

Menambahkan Inisialisasi Kustom

```swift struct Circle { var radius: Double var area: Double init(radius: Double) { self.radius = radius self.area = .pi * radius * radius } } let c = Circle(radius: 5.0) ```

Mempertahankan Inisialisasi Berdasarkan Anggota

Mendefinisikan inisialisasi kustom menonaktifkan inisialisasi berdasarkan anggota yang dibuat otomatis. Untuk mempertahankan keduanya, letakkan inisialisasi kustom di dalam ekstensi: ```swift struct Rect { var width: Double; var height: Double } extension Rect { init(square side: Double) { self.init(width: side, height: side) } } // Both Rect(width:height:) and Rect(square:) available ```

Nilai Default Properti

```swift struct Config { var debug = false var maxRetries = 3 var timeout: TimeInterval = 30 } let c1 = Config() // all defaults let c2 = Config(debug: true) // memberwise with overrides ```

Delegasi Inisialisasi dengan self.init

```swift struct Temperature { var celsius: Double init(celsius: Double) { self.celsius = celsius } init(fahrenheit: Double) { self.init(celsius: (fahrenheit - 32) / 1.8) } init(kelvin: Double) { self.init(celsius: kelvin - 273.15) } } ```

Inisialisasi yang Dapat Gagal

```swift struct Percentage { let value: Double init?(_ value: Double) { guard (0...100).contains(value) else { return nil } self.value = value } } let p = Percentage(105) // nil ```

Inisialisasi dengan Validasi

```swift struct Username { let value: String init?(_ raw: String) { let trimmed = raw.trimmingCharacters(in: .whitespaces) guard trimmed.count >= 3 else { return nil } self.value = trimmed } } ```

Inisialisasi Struktur vs Inisialisasi Kelas

Perbedaan utama dari inisialisasi kelas: • Struktur dapat menggunakan delegasi `self.init()` • Struktur tidak mewarisi inisialisasi (tanpa `super.init()`) • Semua properti tersimpan harus diinisialisasi sebelum digunakan • Tidak ada kata kunci `required` atau `designated` / `convenience`

Pratinjau init(from decoder:)

Struktur yang menerapkan `Decodable` mendapatkan inisialisasi otomatis: ```swift struct User: Decodable { let name: String let age: Int } // Auto-synthesised init(from:) for JSON decoding let user = try JSONDecoder().decode(User.self, from: json) ```

Pemeriksaan Cepat

Di mana Anda harus meletakkan inisialisasi kustom agar inisialisasi berdasarkan anggota yang dibuat otomatis tetap tersedia?

Ringkasan

Hal-hal penting: • Struktur mendapatkan inisialisasi berdasarkan anggota secara gratis dari kompilator • Inisialisasi kustom di dalam tubuh struktur menonaktifkan inisialisasi berdasarkan anggota • Letakkan inisialisasi kustom di dalam ekstensi agar keduanya tetap tersedia • Gunakan `self.init()` untuk mendelegasikan antar-inisialisasi • Inisialisasi yang dapat gagal mengembalikan `nil` jika masukan tidak valid Berikutnya: properti tersimpan dan pengamat properti.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Inisialisasi Memberwise dan Inisialisasi Kustom” gratis?

Ya — teks lengkap “Inisialisasi Memberwise dan Inisialisasi Kustom” 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 “Inisialisasi Memberwise dan Inisialisasi Kustom”?

Memahami inisialisasi memberwise yang dibuat otomatis dan menulis inisialisasi kustom. 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 4.

Berapa lama pelajaran “Inisialisasi Memberwise dan Inisialisasi Kustom” 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. Inisialisasi Memberwise dan Inisialisasi Kustom
  2. Properti Tersimpan dan Pengamat Properti
  3. Properti Terhitung dalam Struct
  4. Metode Mutasi dan Semantik Salin saat Tulis
← Kembali ke Swift Academy