En esta página
Cadenas de Texto
Literales de Cadena¶
let greeting = "Hello, World!"
let single = "It's a string"Interpolación de Cadenas¶
Inserta expresiones dentro de cadenas usando {}:
let name = "Zolo"
let msg = "Hello, {name}!" // "Hello, Zolo!"
let x = 10
let y = 20
let sum = "{x} + {y} = {x + y}" // "10 + 20 = 30"Expresiones en la Interpolación¶
Cualquier expresión puede ir dentro de {}:
let items = [1, 2, 3]
print("Count: {Array.len(items)}") // "Count: 3"
print("Double: {items[0] * 2}") // "Double: 2"
print("Greeting: {if loud { "HI!" } else { "hi" }}")Interpolación Anidada¶
Las expresiones interpoladas pueden contener sus propias cadenas:
let result = "User: {get_user("admin").name}"Cadenas Multilínea¶
Usa comillas triples """ para cadenas multilínea:
let text = """
This is a
multiline string
with indentation preserved
"""Plantillas con Etiqueta¶
Las plantillas con etiqueta permiten prefijar una cadena con un nombre de etiqueta, habilitando una sintaxis similar a DSL:
let id = 42
let query = sql"SELECT * FROM users WHERE id = {id}"
let title = "Hello"
let page = html"<h1>{title}</h1>"Cómo Funcionan las Plantillas con Etiqueta¶
Una plantilla con etiqueta tag"text {expr} more" se compila como una llamada a función:
// sql"SELECT * FROM users WHERE id = {id}"
// compiles to:
sql({"SELECT * FROM users WHERE id = ", ""}, id)La función de etiqueta recibe:
- Una tabla de partes de cadena literal
- Los valores de expresión interpolados como argumentos adicionales
Definiendo Funciones de Etiqueta¶
fn sql(parts: [str], id: int) -> str {
"{parts[0]}{id}{parts[1]}"
}
fn html(parts: [str], content: str) -> str {
"{parts[0]}{content}{parts[1]}"
}Plantillas con Etiqueta Simples¶
Plantillas con etiqueta sin interpolación:
let regex = re"^\d+$" // re({"^\\d+$"})
let path = raw"C:\Users" // raw({"C:\\Users"})Operaciones con Cadenas¶
La biblioteca estándar proporciona utilidades para cadenas:
// Trimming
string.trim(" hello ") // "hello"
string.trim_start(" hello") // "hello"
string.trim_end("hello ") // "hello"
// Checking
string.starts_with("hello", "he") // true
string.ends_with("hello", "lo") // true
string.contains("hello", "ell") // true
string.is_empty("") // true
// Transforming
string.split("a,b,c", ",") // ["a", "b", "c"]
string.replace("hello", "l", "r") // "herro"
string.chars("hello") // ["h", "e", "l", "l", "o"]
// Padding
string.pad_start("42", 5, "0") // "00042"
string.pad_end("hi", 5, ".") // "hi..."Consulta Biblioteca Estándar para la API completa.