Saltar al contenido

09 · Estructuras de Datos

Construcción contextual

Cuando se espera un tipo struct exacto, .{ campos } construye ese struct sin repetir su nombre. Siguen aplicándose los valores por defecto, la privacidad y los campos obligatorios. El compilador nunca adivina una identidad nominal por los nombres de campos.

En esta página

Cuando se espera un tipo struct exacto, .{ campos } construye ese struct sin repetir su nombre. Siguen aplicándose los valores por defecto, la privacidad y los campos obligatorios. El compilador nunca adivina una identidad nominal por los nombres de campos.

Ejemplo completo

Construcción contextual.

22-contextual-structs.zolo
Playground
// A known nominal context supplies the construction name.

struct Point { x: int = 0, y: int = 0 }
struct Segment { start: Point, end: Point }
fn origin() -> Point { .{} }
fn magnitude(point: Point) -> int { point.x + point.y }

fn main() {
    let x = 3
    let point: Point = .{ x, y: 4 }
    print(magnitude(.{ x: 5 })) // expected: 5

    print(point.y) // expected: 4

    let line: Segment = .{ start: .{ x: 1 }, end: .{ x: 7, y: 2 } }
    print(line.end.x) // expected: 7

    let shifted: Point = .{ x: point.x + 10, ..point }
    print(shifted.x) // expected: 13

}

Reglas y comportamiento

Records, maps y actualizaciones · Documentación

Desde un checkout del repositorio:

zolo examples/features/06-data-structures/22-contextual-structs.zolo

Consulta también

Índice global

Encuentra tu camino por Zolo

Prueba una idea

Empieza aquí

9 resultados

9 resultados

enespt-br