0Pricing
Scala for Backend Engineering & Functional Programming · Lección

El efecto ZIO

ZIO[R,E,A]

El efecto ZIO es una lección gratuita de Scala for Backend Engineering & Functional Programming en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Scala for Backend Engineering & Functional Programming, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Scala for Backend Engineering & Functional Programming incluye 4 lecciones en total.

¿Qué es ZIO?

ZIO es una biblioteca para efectos funcionales asíncronos, concurrentes y seguros para los recursos. El tipo central es ZIO[R, E, A]: una descripción de un flujo de trabajo que, dado un entorno R, puede fallar con E o tener éxito con A.

Los tres parámetros de tipo

Lea ZIO[R, E, A] como una función R => Either[E, A] (de forma asíncrona y con efectos):

  • R: entorno o dependencias requeridos
  • E: tipo del error si falla
  • A: tipo del valor si tiene éxito

Alias de tipos

ZIO proporciona alias prácticos:

  • UIO[A] = ZIO[Any, Nothing, A]: no puede fallar
  • Task[A] = ZIO[Any, Throwable, A]
  • IO[E, A] = ZIO[Any, E, A]
  • RIO[R, A] = ZIO[R, Throwable, A]

Creación de efectos exitosos

ZIO.succeed eleva un valor puro. El efecto no puede fallar, por lo que su tipo de error es Nothing.

import zio._

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

Creación de errores

ZIO.fail crea un efecto fallido con un error tipado. El tipo de éxito es Nothing porque nunca tiene éxito.

import zio._

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

Envoltorio de efectos secundarios

ZIO.attempt envuelve un bloque con efectos secundarios que puede lanzar una excepción; el tipo de error pasa a ser Throwable (un Task).

import zio._

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

Impresión en la consola

El servicio Console de ZIO proporciona impresión mediante efectos. Console.printLine devuelve un ZIO cuyo tipo de error es IOException.

import zio._

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

map

map transforma el valor de éxito y deja intactos los canales de error y de entorno.

import zio._

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

mapError

mapError transforma el canal de error; resulta útil para convertir errores de bajo nivel en errores específicos del dominio.

import zio._

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

Pereza y pureza

Al igual que el IO de Cats Effect, un valor ZIO es una descripción pura y perezosa. Construirlo no ejecuta ningún efecto; solo lo hace ejecutarlo en el runtime de ZIO.

Referencia de Scala convencional

Como contraste, aquí se muestra un programa de Scala autocontenido e inmediato. ZIO pospondría los efectos y realizaría su seguimiento en el tipo, pero la salida sería la misma.

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

Comprobación rápida

En ZIO[R, E, A], ¿qué representa el parámetro E?

Resumen

Ha aprendido el tipo de efecto ZIO:

  • ZIO[R, E, A]: entorno, error y éxito
  • Los alias UIO, Task, IO, RIO
  • succeed, fail, attempt
  • map y mapError

A continuación: composición de efectos ZIO.

Preguntas frecuentes

¿La lección «El efecto ZIO» es gratis?

Sí — el texto completo de «El efecto ZIO» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Scala for Backend Engineering & Functional Programming, actualiza a CoddyKit PRO. El curso de Scala for Backend Engineering & Functional Programming incluye 4 lecciones en total.

¿Qué aprenderé en «El efecto ZIO»?

ZIO[R,E,A] Practicas Scala for Backend Engineering & Functional Programming con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Scala for Backend Engineering & Functional Programming?

No se requiere experiencia previa. Scala for Backend Engineering & Functional Programming en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «El efecto ZIO»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Scala for Backend Engineering & Functional Programming?

Sí. Cada lección de Scala for Backend Engineering & Functional Programming incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. El efecto ZIO
  2. Composición de ZIO
  3. Canales de errores y dependencias
  4. Ejecución de aplicaciones ZIO
← Volver a Scala for Backend Engineering & Functional Programming