0Pricing
Scala for Backend Engineering & Functional Programming · Pelajaran

Ekspresi, bukan Pernyataan

Semuanya adalah ekspresi.

Ekspresi, bukan Pernyataan adalah pelajaran Scala for Backend Engineering & Functional Programming gratis di CoddyKit. Ini adalah pelajaran 3 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 Scala for Backend Engineering & Functional Programming, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Scala for Backend Engineering & Functional Programming mencakup 4 pelajaran total.

Ekspresi vs Pernyataan

Pernyataan melakukan sesuatu tetapi tidak mengembalikan hasil yang berguna. Ekspresi dievaluasi menjadi sebuah nilai.

Di Scala, hampir semuanya adalah ekspresi. Ini adalah gagasan inti yang membentuk cara Anda menulis kode.

if adalah Ekspresi

Dalam banyak bahasa, if adalah pernyataan. Di Scala, if/else mengembalikan nilai, sehingga Anda dapat langsung menetapkannya ke val.

Anda tidak memerlukan variabel terpisah yang ditetapkan di setiap cabang.

object Main {
  def main(args: Array[String]): Unit = {
    val temp = 30
    val label = if (temp > 25) "hot" else "mild"
    println(label)
  }
}

Blok adalah Ekspresi

Blok { ... } juga merupakan ekspresi. Nilainya adalah nilai dari baris terakhir.

Dengan demikian, Anda dapat menghitung nilai perantara lalu mengakhirinya dengan hasil.

object Main {
  def main(args: Array[String]): Unit = {
    val result = {
      val a = 2
      val b = 3
      a * b
    }
    println(result)
  }
}

match adalah Ekspresi

Pencocokan pola dengan match juga mengembalikan nilai. Setiap cabang menghasilkan suatu hasil, dan seluruh ekspresi menghasilkan nilai dari cabang yang cocok.

object Main {
  def main(args: Array[String]): Unit = {
    val day = 3
    val name = day match {
      case 1 => "Mon"
      case 2 => "Tue"
      case 3 => "Wed"
      case _ => "Other"
    }
    println(name)
  }
}

Tipe Unit

Beberapa ekspresi hanya ada untuk efek sampingnya, seperti println. Ekspresi tersebut mengembalikan Unit, yang ditulis sebagai ().

Unit mirip dengan void dalam bahasa lain, tetapi tetap merupakan nilai nyata.

object Main {
  def main(args: Array[String]): Unit = {
    val nothing: Unit = println("side effect")
    println(nothing)
  }
}

Mengembalikan Nilai dari Fungsi

Karena isi fungsi merupakan ekspresi, ekspresi terakhir adalah nilai yang dikembalikannya. Anda jarang memerlukan kata kunci return.

Di sini, isi fungsi adalah satu ekspresi.

object Main {
  def max(a: Int, b: Int): Int = if (a > b) a else b
  def main(args: Array[String]): Unit = {
    println(max(7, 4))
  }
}

Fungsi Berbasis Ekspresi

Sebuah fungsi dapat berupa ekspresi blok yang baris terakhirnya menjadi hasil. Hal ini membuat logika tetap ringkas dan menghindari nilai sementara yang dapat diubah.

object Main {
  def discount(price: Double): Double = {
    val rate = if (price > 100) 0.2 else 0.1
    price * (1 - rate)
  }
  def main(args: Array[String]): Unit = {
    println(discount(150.0))
  }
}

Tidak Perlu Perubahan Nilai

Karena if dan match merupakan ekspresi, Anda dapat menetapkan hasilnya ke val alih-alih mengubah var.

Hal ini menghasilkan kode yang lebih bersih dan lebih fungsional.

object Main {
  def main(args: Array[String]): Unit = {
    val score = 85
    val grade = if (score >= 90) "A"
      else if (score >= 80) "B"
      else "C"
    println(grade)
  }
}

Menyusun Ekspresi

Karena semuanya mengembalikan nilai, ekspresi dapat disarangkan dan disusun dengan bebas. Keluaran dari satu ekspresi menjadi masukan bagi ekspresi lainnya.

Kemampuan untuk disusun ini adalah salah satu alasan utama Scala terasa ekspresif.

object Main {
  def main(args: Array[String]): Unit = {
    val n = 7
    val message = "n is " + (if (n % 2 == 0) "even" else "odd")
    println(message)
  }
}

Mengapa Ini Penting

Kode yang berorientasi pada ekspresi:

  • Mengurangi kebutuhan akan variabel yang dapat diubah
  • Membuat alur nilai menjadi jelas
  • Dapat disusun secara alami menjadi program yang lebih besar
  • Sangat cocok dengan sifat tidak dapat diubah

Semuanya Bersama-sama

Di sini, sebuah ekspresi blok berisi ekspresi if, dan semuanya ditetapkan ke satu hasil yang tidak dapat diubah.

object Main {
  def main(args: Array[String]): Unit = {
    val total = {
      val items = 3
      val each = 12
      val raw = items * each
      if (raw > 30) raw - 5 else raw
    }
    println(total)
  }
}

Pemeriksaan Singkat

Periksa pemahaman Anda tentang ekspresi.

Rangkuman

Anda telah mempelajari bahwa di Scala hampir semuanya adalah ekspresi:

  • if/else, match, dan blok semuanya mengembalikan nilai
  • Nilai sebuah blok adalah ekspresi terakhirnya
  • Ekspresi yang menimbulkan efek samping mengembalikan Unit (())
  • Ekspresi terakhir suatu fungsi adalah nilai yang dikembalikannya
  • Hal ini mengurangi perubahan nilai dan meningkatkan kemampuan penyusunan

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Ekspresi, bukan Pernyataan” gratis?

Ya — teks lengkap “Ekspresi, bukan Pernyataan” 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 4 pelajaran total.

Apa yang akan aku pelajari di “Ekspresi, bukan Pernyataan”?

Semuanya adalah ekspresi. 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 3 dari 4.

Berapa lama pelajaran “Ekspresi, bukan Pernyataan” 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. Menggunakan REPL
  2. val, var, dan Tipe
  3. Ekspresi, bukan Pernyataan
  4. Interpolasi String
← Kembali ke Scala for Backend Engineering & Functional Programming