Menu
CoddyTech

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 hasilnya

Kontrol 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 fileprivate
challenge icon

Tantangan

Mudah

Program 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)) }
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Playground Swift