0Pricing
Scala for Backend Engineering & Functional Programming · Pelajaran

Fungsi sebagai Nilai Kelas Utama

Pelajari cara mendefinisikan dan meneruskan fungsi sebagai argumen, mengembalikannya dari fungsi lain, dan menyimpannya dalam variabel.

Fungsi sebagai Nilai Kelas Utama adalah pelajaran Scala for Backend Engineering & Functional Programming gratis di CoddyKit. Ini adalah pelajaran 1 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 Scala for Backend Engineering & Functional Programming, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Scala for Backend Engineering & Functional Programming mencakup 3 pelajaran total.

Fungsi sebagai Nilai Kelas Satu

Selamat datang di Dasar-Dasar Pemrograman Fungsional! Di Scala, fungsi bukan sekadar perintah; fungsi adalah nilai kelas satu.

Artinya, Anda dapat memperlakukan fungsi seperti tipe data lainnya, misalnya angka atau string. Ini adalah konsep inti dalam pemrograman fungsional!

Menetapkan Fungsi ke Variabel

Sama seperti Anda dapat menetapkan angka ke sebuah val, Anda juga dapat menetapkan fungsi ke dalamnya. Di sini, greet menjadi variabel yang menyimpan fungsi kita.

Cobalah menjalankan contoh sederhana ini:

object Main {
  def main(args: Array[String]): Unit = {
    val greet = (name: String) => s"Hello, $name!"
    println(greet("Alice"))
  }
}

Fungsi Anonim (Lambda)

Bagian (name: String) => s"Hello, $name!" pada adegan sebelumnya adalah fungsi anonim, yang juga dikenal sebagai ekspresi lambda.

Fungsi ini tidak memiliki nama dan sering didefinisikan langsung di tempat fungsi tersebut diperlukan. Fungsi anonim sangat berguna untuk tugas-tugas cepat dan spesifik.

object Main {
  def main(args: Array[String]): Unit = {
    val add = (x: Int, y: Int) => x + y
    println(s"5 + 3 = ${add(5, 3)}")

    val subtract = (a: Int, b: Int) => a - b
    println(s"10 - 4 = ${subtract(10, 4)}")
  }
}

Fungsi sebagai Argumen Metode

Salah satu aspek yang paling kuat adalah meneruskan fungsi sebagai argumen ke fungsi lain. Fungsi seperti ini disebut fungsi tingkat tinggi.

Fungsi applyOperation di bawah menerima dua angka dan fungsi lain, yaitu op. Selanjutnya, op digunakan untuk menggabungkan kedua angka tersebut.

object Main {
  def applyOperation(x: Int, y: Int, op: (Int, Int) => Int): Int = {
    op(x, y)
  }

  def main(args: Array[String]): Unit = {
    val add = (a: Int, b: Int) => a + b
    val result = applyOperation(5, 3, add)
    println(s"Result of addition: $result")
  }
}

Memahami Tipe Fungsi

Perhatikan tanda tangan tipe op: (Int, Int) => Int pada adegan sebelumnya.

  • (Int, Int): Artinya, fungsi menerima dua argumen Int.
  • => Int: Artinya, fungsi mengembalikan Int.

Setiap fungsi memiliki tipe yang menjelaskan masukan dan keluarannya. Hal ini membantu Scala memastikan keamanan tipe!

Meneruskan Fungsi secara Ringkas

Anda tidak selalu perlu mendefinisikan fungsi bernama terlebih dahulu. Anda dapat meneruskan fungsi anonim secara langsung di tempat yang mengharapkan argumen fungsi.

Hal ini membuat kode Anda lebih ringkas dan mudah dibaca, terutama untuk operasi sederhana.

object Main {
  def applyOperation(x: Int, y: Int, op: (Int, Int) => Int): Int = {
    op(x, y)
  }

  def main(args: Array[String]): Unit = {
    val result1 = applyOperation(10, 2, (a: Int, b: Int) => a * b)
    println(s"Multiplication: $result1")

    // Scala can often infer types, making it even shorter!
    val result2 = applyOperation(20, 4, (a, b) => a / b)
    println(s"Division: $result2")
  }
}

Fungsi sebagai Nilai Kembalian

Fungsi juga dapat mengembalikan fungsi lain. Hal ini mungkin terdengar membingungkan, tetapi sangat berguna untuk membuat kode yang fleksibel dan dapat dikonfigurasi.

Di sini, makeMultiplier mengembalikan fungsi baru yang mengalikan masukannya dengan faktor tertentu.

object Main {
  def makeMultiplier(factor: Int): Int => Int = {
    (x: Int) => x * factor
  }

  def main(args: Array[String]): Unit = {
    val multiplyByTwo = makeMultiplier(2)
    val multiplyByFive = makeMultiplier(5)

    println(s"5 * 2 = ${multiplyByTwo(5)}")
    println(s"10 * 5 = ${multiplyByFive(10)}")
  }
}

Memahami Closure

Saat makeMultiplier mengembalikan sebuah fungsi, fungsi yang dikembalikan tersebut “mengingat” nilai factor saat fungsi itu dibuat. Hal ini disebut closure.

Bahkan setelah makeMultiplier selesai dijalankan, fungsi multiplyByTwo masih “mengetahui” bahwa faktornya adalah 2.

Manfaat Fungsi Kelas Satu

Mengapa memperlakukan fungsi sebagai nilai kelas satu begitu penting?

  • Fleksibilitas: Anda dapat dengan mudah mengganti perilaku dengan meneruskan fungsi yang berbeda.
  • Dapat digunakan kembali: Bangun fungsi umum yang beroperasi pada fungsi apa pun yang Anda berikan.
  • Keringkasan: Menghasilkan kode yang lebih pendek dan ekspresif, terutama dengan fungsi anonim.
  • Gaya fungsional: Ini adalah dasar pemrograman fungsional yang memungkinkan pola-pola yang kuat.

Uji Pengetahuan Anda

Mari periksa pemahaman Anda tentang fungsi sebagai nilai kelas satu.

object Main {
  def execute(x: Int, op: Int => Int): Int = op(x)

  def main(args: Array[String]): Unit = {
    val square = (n: Int) => n * n
    val result = execute(5, square)
    println(result)
  }
}

Fungsi sebagai Nilai: Ringkasan

Kerja bagus! Anda telah mempelajari konsep dasar fungsi sebagai nilai kelas satu di Scala.

  • Fungsi dapat ditetapkan ke variabel.
  • Fungsi dapat diteruskan sebagai argumen ke fungsi lain.
  • Fungsi dapat dikembalikan sebagai hasil dari fungsi lain.
  • Hal ini memungkinkan pola-pola yang kuat seperti fungsi tingkat tinggi dan closure.

Kemampuan ini merupakan kunci untuk menulis kode Scala fungsional yang fleksibel, dapat digunakan kembali, dan ekspresif. Selanjutnya, kita akan mempelajari fungsi tingkat tinggi yang lebih lanjut dan currying!

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 Scala for Backend Engineering & Functional Programming, upgrade ke CoddyKit PRO. Kursus Scala for Backend Engineering & Functional Programming mencakup 3 pelajaran total.

Apa yang akan aku pelajari di “Fungsi sebagai Nilai Kelas Utama”?

Pelajari cara mendefinisikan dan meneruskan fungsi sebagai argumen, mengembalikannya dari fungsi lain, dan menyimpannya dalam variabel. Kamu berlatih Scala for Backend Engineering & Functional Programming 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 Scala for Backend Engineering & Functional Programming?

Tidak diperlukan pengalaman sebelumnya. Scala for Backend Engineering & Functional Programming 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 3.

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 Scala for Backend Engineering & Functional Programming ini?

Ya. Setiap pelajaran Scala for Backend Engineering & Functional Programming 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. Fungsi sebagai Nilai Kelas Utama
  2. Fungsi Orde Tinggi & Kari
  3. Imutabilitas dan Efek Samping
← Kembali ke Scala for Backend Engineering & Functional Programming