Kontrol akses (public/internal/fileprivate/private)
Kendalikan visibilitas API di seluruh berkas dan modul menggunakan public, internal (bawaan), fileprivate, dan private. Pelajari kapan harus mengekspos atau menyembunyikannya.
Kontrol akses (public/internal/fileprivate/private) adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 3 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.
Ikhtisar tingkat akses
Tingkat akses Swift:
- public: terlihat oleh modul lain
- internal (bawaan): terlihat di modul yang sama
- fileprivate: hanya di berkas sumber ini
- private: cakupan yang membungkusnya (tipe atau ekstensi)
internal (bawaan)
Menghilangkan pengubah akses membuat deklarasi menjadi internal, sehingga dapat digunakan di mana saja dalam modul yang sama (paket atau target aplikasi).
struct Greeter { // internal by default
func hello(_ name: String) -> String { "Hello, \\(name)" }
}
let g = Greeter()
print(g.hello("Ada"))Permukaan API publik
Tandai API sebagai public agar dapat diakses modul lain; biarkan pembantu tetap internal supaya permukaannya tetap kecil.
public struct Math {
public static func add(_ a: Int, _ b: Int) -> Int { a + b }
// internal helper remains hidden outside the module
static func double(_ x: Int) -> Int { x * 2 }
}
print(Math.add(1,2))Cakupan fileprivate
fileprivate membatasi penggunaan hanya pada berkas sumber yang sama. Ini cocok untuk memisahkan pembantu suatu tipe yang berada dalam satu berkas.
// In FileA.swift
fileprivate func hiddenInFile() { print("Only in this file") }
struct A {
func call() { hiddenInFile() } // OK: same file
}
A().call()Cakupan private
private membatasi akses ke cakupan yang membungkusnya (tipe atau ekstensi). Gunakan ini untuk melindungi invarian secara ketat.
struct Box {
private var value = 0 // visible only inside Box declaration
mutating func set(_ v: Int) { value = v } // controlled write
func get() -> Int { value } // controlled read
}
var b = Box()
b.set(7)
print(b.get())
// b.value = 3 // error: 'value' is privateKiat perancangan
Kiat perancangan:
- Gunakan internal sebagai bawaan, lalu buka hanya hal yang dibutuhkan pengguna sebagai public.
- Utamakan private atau fileprivate untuk pembantu agar API tetap kecil.
- Tingkat akses suatu anggota tidak boleh lebih luas daripada tingkat akses tipenya.
Akses bawaan
Pemeriksaan cepat: Apa tingkat akses bawaannya?
Ringkasan
Ringkasan: Gunakan public untuk membuka akses bagi modul lain, pertahankan sebagian besar hal sebagai internal, dan sembunyikan detail dengan fileprivate atau private untuk melindungi invarian.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Kontrol akses (public/internal/fileprivate/private)” gratis?
Ya — teks lengkap “Kontrol akses (public/internal/fileprivate/private)” 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 “Kontrol akses (public/internal/fileprivate/private)”?
Kendalikan visibilitas API di seluruh berkas dan modul menggunakan public, internal (bawaan), fileprivate, dan private. Pelajari kapan harus mengekspos atau menyembunyikannya. 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 3.
Berapa lama pelajaran “Kontrol akses (public/internal/fileprivate/private)” 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
- init memberwise & metode mutating
- Pewarisan, overriding & final
- Kontrol akses (public/internal/fileprivate/private)