0Pricing
Scala for Backend Engineering & Functional Programming · Leçon

L’effet ZIO

ZIO[R,E,A]

L’effet ZIO est une leçon Scala for Backend Engineering & Functional Programming gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Scala for Backend Engineering & Functional Programming, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Scala for Backend Engineering & Functional Programming comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

What Is ZIO?

ZIO is a library for asynchronous, concurrent, resource-safe functional effects. The core type is ZIO[R, E, A] — a description of a workflow that, given an environment R, may fail with E or succeed with A.

The Three Type Parameters

Read ZIO[R, E, A] as a function R => Either[E, A] (asynchronously, with effects):

  • R — required environment / dependencies
  • E — error type if it fails
  • A — value type if it succeeds

Type Aliases

ZIO provides handy aliases:

  • UIO[A] = ZIO[Any, Nothing, A] — cannot fail
  • Task[A] = ZIO[Any, Throwable, A]
  • IO[E, A] = ZIO[Any, E, A]
  • RIO[R, A] = ZIO[R, Throwable, A]

Creating Successful Effects

ZIO.succeed lifts a pure value. The effect cannot fail, so its error type is Nothing.

import zio._

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

Creating Failures

ZIO.fail creates a failed effect with a typed error. The success type is Nothing because it never succeeds.

import zio._

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

Wrapping Side Effects

ZIO.attempt wraps a side-effecting block that may throw; the error type becomes Throwable (a Task).

import zio._

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

Printing to Console

ZIO's Console service provides effectful printing. Console.printLine returns a ZIO whose error type is IOException.

import zio._

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

map

map transforms the success value, leaving the error and environment channels untouched.

import zio._

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

mapError

mapError transforms the error channel — useful for converting low-level failures into domain-specific errors.

import zio._

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

Laziness and Purity

Like Cats Effect's IO, a ZIO value is a pure, lazy description. Building it performs no effects; only running it on the ZIO runtime does.

Plain Scala Baseline

For contrast, here is an eager, self-contained Scala program. ZIO would defer and track errors in the type, but the output is the same.

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

Quick Check

In ZIO[R, E, A], what does the E parameter represent?

Recap

You learned the ZIO effect type:

  • ZIO[R, E, A] — environment, error, success
  • UIO, Task, IO, RIO aliases
  • succeed, fail, attempt
  • map and mapError

Next: composing ZIO effects.

Questions Fréquemment Posées

La leçon « L’effet ZIO » est-elle gratuite ?

Oui — le texte complet de « L’effet ZIO » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Scala for Backend Engineering & Functional Programming, passe à CoddyKit PRO. Le cours Scala for Backend Engineering & Functional Programming comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « L’effet ZIO » ?

ZIO[R,E,A] Tu pratiques Scala for Backend Engineering & Functional Programming avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Scala for Backend Engineering & Functional Programming ?

Aucune expérience préalable n'est requise. Scala for Backend Engineering & Functional Programming sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « L’effet ZIO » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Scala for Backend Engineering & Functional Programming ?

Oui. Chaque leçon Scala for Backend Engineering & Functional Programming inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. L’effet ZIO
  2. Composer ZIO
  3. Canaux d’erreurs et de dépendances
  4. Exécuter des applications ZIO
← Retour à Scala for Backend Engineering & Functional Programming