Ekspresi, Bukan Pernyataan
Semuanya mengembalikan nilai.
Ekspresi, Bukan Pernyataan adalah pelajaran Scala for Backend Engineering & Functional Programming 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 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.
Semuanya Merupakan Ekspresi
Dalam banyak bahasa, if dan blok merupakan pernyataan yang melakukan sesuatu tetapi tidak menghasilkan nilai. Di Scala, keduanya merupakan ekspresi yang dievaluasi menjadi sebuah nilai.
Perubahan ini merupakan inti pemrograman fungsional di Scala.
val max = if (3 > 2) 3 else 2if sebagai Ekspresi
if/else Scala mengembalikan nilai dari cabang yang dijalankan. Anda dapat langsung menetapkan hasil tersebut ke sebuah val.
Anda tidak perlu menggunakan variabel yang dapat diubah dan menetapkannya di dalam cabang-cabang tersebut.
object Main extends App {
val temp = 18
val label = if (temp > 20) "warm" else "cool"
println(label)
}Blok Mengembalikan Baris Terakhirnya
Sebuah blok { ... } itu sendiri merupakan ekspresi. Nilainya adalah nilai dari ekspresi terakhir di dalamnya.
Di sini, blok tersebut dievaluasi menjadi 30, yang kemudian menjadi nilai result.
object Main extends App {
val result = {
val a = 10
val b = 20
a + b
}
println(result)
}Tidak Perlu Menggunakan return Secara Eksplisit
Karena isi metode merupakan ekspresi, nilainya cukup berupa ekspresi terakhir yang dievaluasi. Kata kunci return jarang digunakan.
Kedua metode di bawah berperilaku sama, tetapi cara yang sesuai dengan gaya Scala menghilangkan return.
def double(x: Int) = x * 2
// instead of: def double(x: Int) = { return x * 2 }match Juga Merupakan Ekspresi
Pencocokan pola dengan match juga menghasilkan nilai, sehingga sangat cocok untuk memetakan masukan menjadi hasil.
Setiap cabang kasus menghasilkan nilai untuk cabang tersebut.
object Main extends App {
val day = 3
val name = day match {
case 1 => "Mon"
case 3 => "Wed"
case _ => "Other"
}
println(name)
}Ekspresi Dapat Dikomposisikan
Karena ekspresi mengembalikan nilai, Anda dapat menyarangkan dan menggabungkannya dengan bebas.
Sebuah if dapat menjadi argumen bagi fungsi atau bagian dari perhitungan yang lebih besar, tanpa variabel sementara.
object Main extends App {
val n = 7
println("sign: " + (if (n >= 0) "+" else "-"))
}Pernyataan Tetap Ada
Tidak semuanya menghasilkan nilai yang berguna. Operasi yang hanya dilakukan untuk efek samping, seperti println atau penetapan nilai, dievaluasi menjadi Unit.
Inilah ekspresi Scala yang berperilaku seperti pernyataan.
val x: Unit = println("hello") // value is ()Hindari var dengan Ekspresi
Gaya ekspresi memungkinkan Anda mengganti pola var yang dapat diubah. Alih-alih mendeklarasikan var dan menetapkannya di dalam cabang, tetapkan seluruh if ke sebuah val.
object Main extends App {
val score = 85
val grade = if (score >= 90) "A" else if (score >= 80) "B" else "C"
println(grade)
}for Menghasilkan Nilai
for dengan yield merupakan ekspresi yang membangun koleksi baru, bukan sekadar melakukan perulangan untuk menghasilkan efek samping.
Dengan demikian, iterasi menjadi transformasi yang menghasilkan nilai.
object Main extends App {
val squares = for (i <- 1 to 4) yield i * i
println(squares)
}Mengapa Ini Penting untuk Kode Backend
Kode yang berorientasi pada ekspresi cenderung lebih singkat, memiliki lebih sedikit bagian yang perlu dikelola, dan lebih mudah diuji.
- Lebih sedikit variabel yang dapat diubah berarti lebih sedikit bug.
- Hasil mengalir secara alami dari masukan.
- Gaya ini dapat dikomposisikan dengan baik bersama pustaka fungsional Scala.
Gaya Pernyataan vs Gaya Ekspresi
Bandingkan kedua cara berpikir ini. Gaya pernyataan mengubah nilai variabel, sedangkan gaya ekspresi langsung mengembalikan sebuah nilai.
Scala memungkinkan Anda menggunakan keduanya, tetapi lebih menyukai gaya ekspresi.
var s = "" // statement style
if (true) s = "yes" else s = "no"
val e = if (true) "yes" else "no" // expression stylePemeriksaan Singkat
Menjadi nilai apakah if/else saat dievaluasi di Scala?
Rangkuman
Scala mengutamakan ekspresi yang menghasilkan nilai daripada pernyataan yang hanya mengubah keadaan.
if,match, blok, danfor/yieldsemuanya mengembalikan nilai.- Isi metode mengembalikan ekspresi terakhirnya;
returnjarang diperlukan. - Kode berefek samping mengembalikan
Unit. - Gaya ini mengurangi penggunaan
vardan jumlah bug.
Belajar Scala dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 39
- Pelajaran
- 143
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 mengembalikan nilai. 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 4 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
- val vs var
- Tipe Dasar dan Literal
- Inferensi Tipe
- Ekspresi, Bukan Pernyataan