0Pricing
Swift Academy · Pelajaran

Fungsi sebagai Nilai Kelas Utama

Simpan fungsi dalam variabel, teruskan sebagai argumen, dan kembalikan dari fungsi.

Fungsi sebagai Nilai Kelas Utama adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 4 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

Di Swift, fungsi diperlakukan sebagai nilai kelas satu—Anda dapat menyimpannya dalam variabel, meneruskannya sebagai argumen, mengembalikannya dari fungsi lain, dan menulisnya di dalam fungsi lain.

Tipe Fungsi

Setiap fungsi memiliki tipe yang ditentukan oleh tipe parameternya dan tipe nilai yang dikembalikannya: ```swift func add(_ a: Int, _ b: Int) -> Int { a + b } let operation: (Int, Int) -> Int = add print(operation(3, 4)) // 7 ``` Tipe `add` adalah `(Int, Int) -> Int`.

Meneruskan Fungsi sebagai Argumen

```swift func apply(_ f: (Int) -> Int, to value: Int) -> Int { f(value) } func double(_ n: Int) -> Int { n * 2 } print(apply(double, to: 5)) // 10 ``` Ini merupakan dasar fungsi tingkat tinggi seperti `map` dan `filter`.

Mengembalikan Fungsi

```swift func multiplier(by factor: Int) -> (Int) -> Int { return { value in value * factor } } let triple = multiplier(by: 3) print(triple(7)) // 21 ``` Mengembalikan fungsi akan membuat *penutupan* yang menangkap `factor`.

Fungsi Bersarang

Fungsi dapat didefinisikan di dalam fungsi lain: ```swift func chooseStep(goForward: Bool) -> (Int) -> Int { func forward(_ n: Int) -> Int { n + 1 } func backward(_ n: Int) -> Int { n - 1 } return goForward ? forward : backward } let step = chooseStep(goForward: true) print(step(3)) // 4 ```

Penutupan sebagai Singkatan

Literal penutupan anonim dapat digunakan sebagai pengganti tipe fungsi apa pun: ```swift let square: (Int) -> Int = { $0 * $0 } print(square(6)) // 36 let doubled = [1, 2, 3].map { $0 * 2 } // [2, 4, 6] ``` `$0` merujuk pada argumen pertama dalam bentuk penutupan singkat.

Menyimpan Fungsi dalam Koleksi

```swift let operations: [(Int, Int) -> Int] = [ { $0 + $1 }, { $0 - $1 }, { $0 * $1 } ] for op in operations { print(op(10, 3)) } // 13, 7, 30 ```

Sintaks Penutupan di Akhir

Saat argumen terakhir adalah fungsi, Anda dapat menuliskannya di luar tanda kurung: ```swift func withLogging(_ label: String, action: () -> Void) { print("Start: \(label)") action() print("End: \(label)") } withLogging("fetch") { fetchData() } ```

Identitas dan Kesetaraan Fungsi

Anda tidak dapat membandingkan dua nilai fungsi dengan `==` di Swift—fungsi tidak mematuhi Equatable: ```swift // let same = add == add ❌ ``` Jika perlu membandingkannya, bungkus fungsi tersebut dalam struct atau class yang mematuhi Equatable.

Pola Penerapan Fungsi Bertahap

Simulasikan penerapan fungsi bertahap dengan mengembalikan fungsi yang diterapkan sebagian: ```swift func add(_ a: Int) -> (Int) -> Int { { b in a + b } } let add5 = add(5) print(add5(3)) // 8 print(add5(10)) // 15 ``` Berguna untuk membuat fungsi khusus dari fungsi umum.

Pemeriksaan Singkat

Apa tipe fungsi untuk fungsi yang menerima dua `Int` dan mengembalikan sebuah `Int`?

Rangkuman

Hal-hal penting: • Fungsi memiliki tipe seperti `(ParamTypes) -> ReturnType` • Simpan dalam variabel, teruskan sebagai argumen, dan kembalikan dari fungsi • Penutupan (`{ }`) adalah nilai fungsi anonim • Sintaks penutupan di akhir membuat lokasi pemanggilan lebih rapi • Mengembalikan fungsi dari fungsi akan membuat penutupan yang menangkap variabel Berikutnya: pelajaran tentang perantaian dan pembukaan nilai opsional.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Fungsi sebagai Nilai Kelas Utama” gratis?

Ya — teks lengkap “Fungsi sebagai Nilai Kelas Utama” 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 “Fungsi sebagai Nilai Kelas Utama”?

Simpan fungsi dalam variabel, teruskan sebagai argumen, dan kembalikan dari fungsi. 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 4 dari 4.

Berapa lama pelajaran “Fungsi sebagai Nilai Kelas Utama” 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. Label Argumen dan Nama Parameter
  2. Parameter Bawaan dan Variadik
  3. Parameter In-Out dan Beberapa Nilai Kembalian
  4. Fungsi sebagai Nilai Kelas Utama
← Kembali ke Swift Academy