0Pricing
Scala for Backend Engineering & Functional Programming · Pelajaran

val vs var

Pengikatan yang tidak dapat dan dapat diubah.

val vs var adalah pelajaran Scala for Backend Engineering & Functional Programming gratis di CoddyKit. Ini adalah pelajaran 1 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.

Dua Cara Memberi Nama pada Nilai

Di Scala, Anda mengikat nama ke suatu nilai menggunakan val atau var.

val membuat pengikatan tidak dapat diubah: setelah diberi nilai, pengikatan tersebut tidak akan pernah dapat menunjuk ke nilai lain. var membuat pengikatan dapat diubah yang dapat Anda beri nilai baru nanti.

Memilih di antara keduanya adalah salah satu kebiasaan pertama yang dibangun oleh seorang insinyur backend Scala.

val name = "Ada"
var score = 10

Mendefinisikan val

val hanya dapat dibaca. Anda menetapkannya sekali, dan kompiler menjamin nilainya tetap sama.

Hal ini membuat kode Anda lebih mudah dipahami: val tidak akan mengejutkan Anda dengan nilai yang berubah di tempat lain.

object Main extends App {
  val pi = 3.14
  println(pi)
}

Penetapan Ulang val Gagal

Mencoba menetapkan ulang val adalah kesalahan kompilasi, bukan kerusakan saat program berjalan. Kompiler menghentikan Anda sebelum program sempat dijalankan.

Potongan kode di bawah akan gagal dengan pesan reassignment to val.

val country = "Turkey"
country = "Spain" // error: reassignment to val

Mendefinisikan var

var dapat diberi nilai baru sebanyak yang Anda inginkan, selama nilai baru tersebut memiliki tipe yang kompatibel.

Gunakan var ketika suatu nilai memang perlu berubah seiring waktu, misalnya pencacah dalam perulangan.

object Main extends App {
  var count = 0
  count = count + 1
  count = count + 1
  println(count)
}

var Mempertahankan Tipenya

Meskipun var dapat diberi nilai baru, tipenya tetap sejak didefinisikan.

Jika level dimulai sebagai Int, Anda tidak dapat menyimpan String di dalamnya nanti. Kompiler akan menolak ketidakcocokan tersebut.

var level = 1
level = 5        // ok, still an Int
level = "high"  // error: type mismatch

Utamakan val secara Bawaan

Scala idiomatis hampir selalu mengutamakan val. Ketidakberubahan menghindari seluruh kategori kesalahan dan membuat kode konkuren lebih aman.

  • Gunakan val terlebih dahulu.
  • Beralih ke var hanya ketika Anda benar-benar memerlukan perubahan.

Mengubah var Menjadi val

Banyak perulangan yang tampaknya memerlukan var sebenarnya dapat ditulis dengan val dan sebuah ekspresi.

Di sini, sebuah jumlah dihitung dengan rentang dan sum, tanpa memerlukan perubahan nilai.

object Main extends App {
  val total = (1 to 5).sum
  println(total)
}

Cakupan Pengikatan

val dan var sama-sama berada di dalam blok { ... } tempat keduanya didefinisikan.

Pengikatan yang dideklarasikan di dalam blok tidak terlihat dari luar blok tersebut. Hal ini menjaga nama tetap rapi dan mencegah penggunaan ulang yang tidak disengaja.

object Main extends App {
  val outer = 1
  {
    val inner = 2
    println(outer + inner)
  }
  // inner is not visible here
}

val Malas

lazy val hanya dihitung saat pertama kali digunakan, lalu hasilnya disimpan.

Ini berguna untuk nilai yang mahal dihitung dan mungkin tidak selalu Anda perlukan. Isi nilainya dijalankan paling banyak sekali.

object Main extends App {
  lazy val greeting = { println("computing"); "Hi" }
  println("before")
  println(greeting)
  println(greeting)
}

val dengan Tipe Eksplisit

Anda dapat memberi anotasi tipe pada pengikatan setelah titik dua. Hal ini mendokumentasikan maksud Anda dan dapat memperluas tipe secara sengaja.

Di sini, amount dideklarasikan sebagai Double, meskipun 10 tampak seperti Int.

val amount: Double = 10
val label: String = "price"

val dan var Berdampingan

Keduanya berperilaku sama sampai Anda mencoba menetapkan ulang nilainya.

  • val x: tetapkan sekali, tetap selamanya.
  • var y: tetapkan dan tetapkan ulang dengan bebas.

Program di bawah hanya menambah nilai var.

object Main extends App {
  val base = 100
  var bonus = 0
  bonus = bonus + 25
  println(base + bonus)
}

Pemeriksaan Singkat

Uji pemahaman Anda tentang val dan var.

Ringkasan

Anda telah mempelajari dua cara mengikat nama di Scala.

  • val tidak dapat diubah dan merupakan pilihan bawaan.
  • var dapat diubah dan digunakan untuk nilai yang harus berubah.
  • Menetapkan ulang val merupakan kesalahan kompilasi.
  • Tipe keduanya tetap; lazy val menunda perhitungan.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “val vs var” gratis?

Ya — teks lengkap “val vs var” 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 “val vs var”?

Pengikatan yang tidak dapat dan dapat diubah. 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 4.

Berapa lama pelajaran “val vs var” 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. val vs var
  2. Tipe Dasar dan Literal
  3. Inferensi Tipe
  4. Ekspresi, Bukan Pernyataan
← Kembali ke Scala for Backend Engineering & Functional Programming