araozu.dev/src/pages/blog/es/programacion-07.md

4.4 KiB

layout title description pubDate tags image
../../../layouts/BlogLayout.astro 07: Cero a Zig - Variables Introducción a las variables 2024-08-10
tech
lenguajes
intro
tutorial
zig
VSCode
url alt caption

Ahora veremos un concepto fundamental: Variables.

Todo el código lo escribiremos en el proyecto que creamos en el artículo anterior.

Motivación

Vamos a plantear un escenario: Queremos escribir un programa que salude a una persona, le diga cuanto cuesta su orden, y se despida.

Digamos que la persona se llama Juan. El código es así:

const std = @import("std");

pub fn main() !void {
    std.debug.print("Hola {s}\n", .{"Juan"});
    std.debug.print("Tu pedido cuesta {s} dolares\n", .{"20"});
    std.debug.print("Adios {s}\n", .{"Juan"});
}

Y al ejecutarlo se muestra:

Codigo

Como el código es sencillo, no hay ningún problema. ¿Pero qué pasaría si tuvieramos que imprimir el nombre 10 veces? Entonces tendríamos que repetirlo 10 veces.

const std = @import("std");

pub fn main() !void {
    std.debug.print("Hola {s}\n", .{"Juan"});
    std.debug.print("Hola {s}\n", .{"Juan"});
    std.debug.print("Hola {s}\n", .{"Juan"});
    std.debug.print("Hola {s}\n", .{"Juan"});
    std.debug.print("Hola {s}\n", .{"Juan"});
    std.debug.print("Hola {s}\n", .{"Juan"});
    std.debug.print("Hola {s}\n", .{"Juan"});
    std.debug.print("Hola {s}\n", .{"Juan"});
    std.debug.print("Hola {s}\n", .{"Juan"});
    std.debug.print("Hola {s}\n", .{"Juan"});
}

Codigo

Un poco tedioso, pero nada imposible.

Ahora vamos a cambiar el programa: el nombre de la persona será Maria.

Lo que tenemos que hacer es cambiar Juan por Maria en los 10 lugares, uno por uno.

Esto es bastante común, y existe una solución para no cambiar 10 veces, sino solamente una.

Variables

Una variable es como un almacén. Una variable almacena un valor bajo un nombre.

Por ejemplo, podemos decir que nombre = "Juan", y a partir de ese momento cada vez que usemos nombre se reemplazará por Juan.

Por ejemplo:

const std = @import("std");

pub fn main() !void {
    const nombre = "Juan";
    std.debug.print("Hola {s}\n", .{nombre});
}

En el código de arriba en la linea 4, hemos creado una variable nombre, y le hemos dado como valor "Juan".

Despues, en la linea 5 estamos utilizando la variable. En vez de escribir .{"Juan"} escribimos .{nombre}.

Al ejecutar el programa se imprimirá Hola Juan

Codigo

Podemos utilizar la variable las veces que queramos. Si imprimimos 10 veces se vería así:

const std = @import("std");

pub fn main() !void {
    const nombre = "Juan";
    std.debug.print("Hola {s}\n", .{nombre});
    std.debug.print("Hola {s}\n", .{nombre});
    std.debug.print("Hola {s}\n", .{nombre});
    std.debug.print("Hola {s}\n", .{nombre});
    std.debug.print("Hola {s}\n", .{nombre});
    std.debug.print("Hola {s}\n", .{nombre});
    std.debug.print("Hola {s}\n", .{nombre});
    std.debug.print("Hola {s}\n", .{nombre});
    std.debug.print("Hola {s}\n", .{nombre});
    std.debug.print("Hola {s}\n", .{nombre});
}

Y al ejecutar se imprime 10 veces.

Codigo

Ahora, si queremos cambiar Juan por Maria, solo tenemos que hacerlo en un lugar:

const std = @import("std");

pub fn main() !void {
    const nombre = "Maria";
    std.debug.print("Hola {s}\n", .{nombre});
    std.debug.print("Hola {s}\n", .{nombre});
    std.debug.print("Hola {s}\n", .{nombre});
    std.debug.print("Hola {s}\n", .{nombre});
    std.debug.print("Hola {s}\n", .{nombre});
    std.debug.print("Hola {s}\n", .{nombre});
    std.debug.print("Hola {s}\n", .{nombre});
    std.debug.print("Hola {s}\n", .{nombre});
    std.debug.print("Hola {s}\n", .{nombre});
    std.debug.print("Hola {s}\n", .{nombre});
}

Codigo

Creando una variable

Para crear una variable se escribe:

  • const
  • El nombre de la variable
  • =
  • El valor de la variable
  • ;

El nombre de la variable solo puede tener letras, números y guiones bajos. No puede tener espacios.

Puedes crear varias variables, cada una en una línea. Por ejemplo:

const nombre = "Pedro";
const edad = "32";
const helado_favorito = "Vainilla";