Bekerja dengan File
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Swift di Coddy. Pelajaran 1 dari 57.
Program nyata dibagi menjadi beberapa file. Di Swift, setiap file .swift dalam aplikasi dikompilasi bersama menjadi satu module, sehingga fungsi atau tipe yang dideklarasikan dalam satu file dapat digunakan di file lain tanpa import:
// Greeting.swift
func greeting(for name: String) -> String {
"Hello, \(name)!"
}
// main.swift
print(greeting(for: "Ada"))Menjalankan program ini mencetak Hello, Ada!: main.swift memanggil fungsi yang ada di Greeting.swift.
Hanya satu file yang boleh berisi pernyataan tingkat atas, yaitu kode yang berjalan sendiri di luar fungsi atau tipe apa pun. File itu adalah main.swift, dan di sanalah program dimulai. File lainnya hanya berisi deklarasi:
// Greeting.swift
func greeting(for name: String) -> String { "Hello, \(name)!" }
// print("hi") // error: pernyataan tidak diizinkan di tingkat teratas di sini
// main.swift
let name = readLine() ?? "friend" // Kode di tingkat teratas boleh ditulis di main.swift
print(greeting(for: name))Tata letak yang umum adalah satu tipe per file, dengan nama sesuai tipenya: Dog.swift berisi Dog, Account.swift berisi Account. Dalam tantangan di bagian ini, kodemu ditulis di file-file tersebut dan main.swift berisi kode input/output yang disediakan, yang biasanya tidak bisa kamu edit. Editor menampilkan setiap file sebagai tab.
Dog.swift // class Dog { ... }
Account.swift // struct Account { ... }
main.swift // membaca input dan mencetak hasilnyaKontrol akses juga berlaku untuk file. private dan fileprivate menyembunyikan deklarasi dari file lain, sedangkan pengaturan default, internal, membuatnya terlihat di setiap file dalam module:
// Secret.swift
fileprivate let salt = "x7" // hanya file ini yang bisa mengaksesnya
func hashed(_ s: String) -> String { s + salt }
// main.swift
print(hashed("pw")) // tidak masalah: hashed bersifat internal
// print(salt) // error: salt bersifat fileprivateTantangan
MudahProgram ini memiliki dua file. main.swift membaca nama dan mencetak hasil dari greeting(for:). Lengkapi greeting(for:) di Greeting.swift agar mengembalikan Hello, Ada! untuk nama Ada, atau Hello, friend! jika nama kosong.
Kodemu ditulis di Greeting.swift. main.swift berisi kode input/output yang disediakan dan tidak boleh diedit.
Coba sendiri
// Kode input/output yang disediakan: biarkan apa adanya
var input: [String] = []
while let line = readLine() { input.append(line) }
for name in input { print(greeting(for: name)) }
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pemrograman Berorientasi Objek
1Class dan Object
Bekerja dengan FileMendefinisikan ClassMethod dan selfInitializerClass adalah ReferensiUlasan: Kartu Perpustakaan4Enkapsulasi
Kontrol AksesHanya Bisa Dibaca dari LuarMelindungi StateInitializer yang Bisa GagalRangkuman: Rekening Bank7Polimorfisme dan Generik
PolimorfismeKonversi TipeFungsi GenerikTipe GenerikRangkuman: Kalkulator Bentuk2Struct dan Tipe Nilai
StructSemantik NilaiMethod yang Mengubah NilaiStruct atau classRangkuman, Item Inventaris11Proyek: Manajemen Perpustakaan
Buku dan AnggotaPeminjaman BukuLatihan sendiri: Playground Swift