Powered by AppSignal & Oban Pro

Habitación 1: Variable String

space_station/solutions/02.livemd

Habitación 1: Variable String

Mix.install([
  {:explorer, "~> 0.11.1"},
  {:kino, "~> 0.19.0"},
  {:kino_explorer, "~> 0.1.25"},
  {:kino_vega_lite, "~> 0.1.13"},
  {:helpers, path: Path.expand("../helpers", __DIR__)}
])

defmodule Room do
  require Explorer.DataFrame, as: DF

  def verify(answer) do
    case answer do

      "Cerrar" -> Helpers.Messages.correct(
            "03.livemd",
            "¡Muy bien!, Es el valor buscado."
        )

      ~c"Cerrar" -> Helpers.Messages.info(
            "Vas por buen camino, pero debes usar un string utf-8 con comillas dobles. Inténtalo nuevamente."
        )

      _ -> Helpers.Messages.error(
            "No es la respuesta correcta. Inténtalo nuevamente."
        )
    end
    |> Kino.Markdown.new()
  end
end

👨‍🚀 Llegada a la estación espacial exitosa 🛰

¡Buena suerte en tú misión! 💫

La terminal del sistema de oxígeno comienza a parpadear en rojo… algo no está bien.

⚠️ ¡Peligro! ⚠️

Se ha detectado pérdida de oxígeno en la sala `B9-2`.

🕹️ ¡Rápido! Activa la puerta de emergencia. Usa la terminal para enviar la señal correcta y poder cerrar la sala antes que se agote el oxígeno por completo.

Desafío de la Habitación

La primera tarea es escribir "Cerrar". Cambia el valor de la variable respuesta por "Cerrar" y ejecuta la celda.

💡 ¿Cómo se usan los Strings en Elixir?

Recuerda que en Elixir los strings (cadenas de texto) tienen diferencia al escribirlas entre comillas dobles o simples. Al usar comillas dobles es un string utf-8. Al usar comillas simples es una cadena de bytes de bajo nivel del tipo charlist (lista de caracteres compatibles con Erlang).

La respuesta que se busca es un string utf-8 como el siguiente:

respuesta = "Ejemplo"

Si escribes con comillas simples no funcionará por que son elementos distintos (para el compilador).

respuesta = 'Ejemplo'

En la nueva sintaxis se utiliza una ~c antes del elemento para ser explícito en que es una cadena de bytes de bajo nivel.

respuesta = ~c"Ejemplo"

Establece tu respuesta

respuesta = "Cerrar"

Verificar tu respuesta

Room.verify(respuesta)