0Pricing
Scala for Backend Engineering & Functional Programming · Pelajaran

Efek ZIO

ZIO[R,E,A].

Efek ZIO 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.

Apa Itu ZIO?

ZIO adalah pustaka untuk efek fungsional yang asinkron, serentak, dan aman terhadap sumber daya. Tipe intinya adalah ZIO[R, E, A] — deskripsi alur kerja yang, dengan lingkungan R, dapat gagal dengan E atau berhasil dengan A.

Tiga Parameter Tipe

Baca ZIO[R, E, A] sebagai fungsi R => Either[E, A] (secara asinkron dan dengan efek):

  • R — lingkungan atau dependensi yang diperlukan
  • E — tipe kesalahan jika gagal
  • A — tipe nilai jika berhasil

Alias Tipe

ZIO menyediakan alias yang praktis:

  • UIO[A] = ZIO[Any, Nothing, A] — tidak dapat gagal
  • Task[A] = ZIO[Any, Throwable, A]
  • IO[E, A] = ZIO[Any, E, A]
  • RIO[R, A] = ZIO[R, Throwable, A]

Membuat Efek yang Berhasil

ZIO.succeed mengangkat nilai murni. Efek ini tidak dapat gagal, sehingga tipe kesalahannya adalah Nothing.

import zio._

val meaning: UIO[Int] = ZIO.succeed(42)

Membuat Kegagalan

ZIO.fail membuat efek yang gagal dengan kesalahan bertipe. Tipe keberhasilannya adalah Nothing karena efek ini tidak pernah berhasil.

import zio._

val failed: IO[String, Nothing] = ZIO.fail("Something went wrong")

Membungkus Efek Samping

ZIO.attempt membungkus blok yang menghasilkan efek samping dan mungkin melempar pengecualian; tipe kesalahannya menjadi Throwable (sebuah Task).

import zio._

val parsed: Task[Int] = ZIO.attempt("123".toInt)

Mencetak ke Konsol

Layanan Console milik ZIO menyediakan pencetakan yang menghasilkan efek. Console.printLine mengembalikan ZIO dengan tipe kesalahan IOException.

import zio._

val hello = Console.printLine("Hello, ZIO!")

map

map mengubah nilai keberhasilan, sementara saluran galat dan lingkungan tetap tidak berubah.

import zio._

val doubled: UIO[Int] = ZIO.succeed(21).map(_ * 2)

mapError

mapError mengubah saluran galat—berguna untuk mengonversi kegagalan tingkat rendah menjadi galat khusus domain.

import zio._

val e: IO[String, Int] =
  ZIO.fail(404).mapError(code => s"HTTP $code")

Kemalasan dan Kemurnian

Seperti IO milik Cats Effect, nilai ZIO merupakan deskripsi yang murni dan malas. Membangunnya tidak menjalankan efek apa pun; efek hanya dijalankan saat nilai tersebut dijalankan pada runtime ZIO.

Dasar Scala Sederhana

Sebagai perbandingan, berikut program Scala yang mandiri dan langsung dijalankan. ZIO akan menunda eksekusi dan melacak galat dalam tipe, tetapi keluarannya sama.

object Main {
  def main(args: Array[String]): Unit = {
    val x = 42
    println(s"value: $x")
  }
}

Pemeriksaan Singkat

Dalam ZIO[R, E, A], apa yang diwakili parameter E?

Ringkasan

Anda telah mempelajari tipe efek ZIO:

  • ZIO[R, E, A] — lingkungan, galat, keberhasilan
  • Alias UIO, Task, IO, RIO
  • succeed, fail, attempt
  • map dan mapError

Berikutnya: menyusun efek ZIO.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Efek ZIO” gratis?

Ya — teks lengkap “Efek ZIO” 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 “Efek ZIO”?

ZIO[R,E,A]. 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 “Efek ZIO” 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. Efek ZIO
  2. Menyusun ZIO
  3. Kanal Error dan Dependensi
  4. Menjalankan Aplikasi ZIO
← Kembali ke Scala for Backend Engineering & Functional Programming