Volver a la página principal
martes 19 noviembre 2024
8

Cómo declarar constantes en Elixir

En Elixir, no existen constantes tradicionales como en otros lenguajes. Sin embargo, se pueden lograr comportamientos similares al declarar variables inmutables (bindings) o al usar módulos con atributos o funciones que devuelvan valores fijos.

¿Cómo simular constantes en Elixir?

Método 1: Usar variables inmutables

En Elixir, las variables son inmutables por naturaleza, lo que significa que una vez asignadas, no pueden ser cambiadas. Aunque no son estrictamente constantes, puedes tratarlas como tales dentro de su ámbito.

pi = 3.14159
nombre = "Elixir"

Una vez asignado, el valor no puede cambiar en el mismo ámbito. Sin embargo, puede ser reescrito en otro contexto.

Método 2: Usar atributos de módulo

En Elixir, los atributos de módulo (@) pueden usarse para definir valores que se comportan como constantes en el módulo. Este enfoque es más común y proporciona una solución organizada.

defmodule Configuracion do
  @url_base "https://ejemplo.com"
  @timeout 5000

  def url_base, do: @url_base
  def timeout, do: @timeout
end

Acceder a los valores:

IO.puts Configuracion.url_base()  # Imprime: https://ejemplo.com
IO.puts Configuracion.timeout()  # Imprime: 5000

Método 3: Usar funciones públicas que devuelvan valores fijos

Otra forma común de manejar valores constantes es usar funciones sin argumentos que devuelvan un valor fijo. Este método es flexible y encaja con el diseño funcional de Elixir.

defmodule Configuracion do
  def url_base, do: "https://ejemplo.com"
  def timeout, do: 5000
end

Este enfoque tiene la ventaja de ser dinámico, permitiendo a las funciones calcular valores derivados o configuraciones en tiempo de ejecución.

Ejemplos adicionales de uso de "constantes" en Elixir

Ejemplo 1: Usar atributos para valores fijos

defmodule Matematicas do
  @pi 3.14159
  def pi, do: @pi

  def area_circulo(radio), do: @pi * radio * radio
end

IO.puts Matematicas.area_circulo(5)  # Imprime: 78.53975

Ejemplo 2: Configuraciones en un módulo

defmodule Config do
  @max_usuarios 100
  @tema "oscuro"

  def max_usuarios, do: @max_usuarios
  def tema, do: @tema
end

IO.puts Config.max_usuarios()  # Imprime: 100
IO.puts Config.tema()          # Imprime: oscuro

Buenas prácticas para constantes en Elixir

1. Usa atributos de módulo (@) para valores que se mantendrán fijos en un módulo.

2. Prefiere funciones sin argumentos para valores dinámicos o configuraciones.

3. Mantén tus constantes organizadas en módulos temáticos.

Referencias oficiales

Consulta la documentación oficial de Elixir para más detalles:

Etiquetas:
elixir
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer