Saltar al contenido

10 · Strings

Literales de cadena nominales validados

Un literal como Email\"[email protected]\" se acepta solo si el predicado del newtype de cadena validado acepta su contenido estático durante la compilación. Las cadenas dinámicas usan el constructor falible. Se conserva la semántica de los templates etiquetados por funciones.

En esta página

Un literal como Email"[email protected]" se acepta solo si el predicado del newtype de cadena validado acepta su contenido estático durante la compilación. Las cadenas dinámicas usan el constructor falible. Se conserva la semántica de los templates etiquetados por funciones.

Ejemplo completo

Literales de cadena nominales validados.

nominal-string-literals.zolo
Playground
// expect: [email protected]

// expect: true

// expect: empty

// expect: [email protected]

// expect: callable

const required = "@"
fn valid_email(value: str) -> bool = value.contains(required)
newtype Email(str) where |value| valid_email(value)
newtype Empty(str) where |value| value == ""
let email = Email"[email protected]"
print(email.unwrap())
let input = "invalid"
print(Email.new(input).is_err())
let empty = Empty""
print(if empty.unwrap() == "" { "empty" } else { "wrong" })
mod address { pub newtype Address(str) where |value| value.contains("@") }
use address::{Address as Mail}
print(Mail"[email protected]".unwrap())
fn callable() -> str { let Email = |parts: [str]| parts[0]; Email"callable" }
print(callable())

Reglas y comportamiento

Validación, esquemas y unidades · Documentación

Desde un checkout del repositorio:

zolo examples/features/nominal-string-literals.zolo

Consulta también

Índice global

Encuentra tu camino por Zolo

Prueba una idea

Empieza aquí

9 resultados

9 resultados

enespt-br