Saltar al contenido

17 · Schemas

Valores por Defecto

Declara campos con `= valor` y obtén una instancia lista con `Schema.default()`.

En esta página

La sintaxis schema Nombre { campo: Tipo = defecto } asocia un valor por defecto a cada campo. Llamar a Nombre.default() devuelve una instancia con todos los campos rellenos — sin argumentos, sin mapa, sin validación. Es la opción adecuada para configuraciones y objetos de solicitud donde "el estado inicial ya es significativo".

Config.default() rellena puerto, host y modo debug sin ningún argumento.

01-defaults.zolo
Playground
// Feature: schema with default values — `Schema.default()` builds an instance
// Syntax: `schema Name { field: type = default, ... }`. Calling
// `Name.default()` returns an instance with every field set.
// When to use: configs, settings, request bodies — when "the default
// shape is meaningful and you want zero-arg construction".

schema Config {
  port: int = 8080,
  host: str = "localhost",
  debug: bool = false,
}

let cfg = Config.default()
print(cfg.port)

// expected: 8080
print(cfg.host)

// expected: localhost
print(cfg.debug)

// expected: false

// Fields are accessed like struct fields.
print("listening on {cfg.host}:{cfg.port}")
// expected: listening on localhost:8080

Desafío

Añade un campo timeout: int = 30 al schema Config e imprime cfg.timeout. ¿Qué ocurre si eliminas el valor por defecto y llamas a Config.default() de nuevo?

Índice global

Encuentra tu camino por Zolo

Prueba una idea

Empieza aquí

9 resultados

9 resultados

enespt-br