Cero a Zig 06: Modificando el hola mundo

Published: 2024-07-30

En el artículo anterior escribimos nuestro primer programa: Hola mundo. En este artículos vamos a modificar el mensaje y aprender un primer concepto llamado Strings.

Como siempre, vamos a trabajar en el archivo src/main.zig del proyecto que creamos anteriormente.

Hola mundo modificado

En el programa que escribimos hay un monton de palabras, y seguramente no las entiendas. Ahora mismo, lo que vamos a hacer es modificar el texto que aparece.

Primero, observemos el código:

Codigo

Lo que nos importa ahora mismo es la frase Hola mundo. Hay algunas particularidades:

  • La frase tiene un color rojizo, mientras que otras palabras tienen otros colores
  • La frase inicia con una comilla doble ", y acaba con otra.
  • Hay dos caracteres: \ y n que no aparecen al ejecutar el programa.

Toda la frase es algo llamado un string. Un string es una secuencia de letras (caracteres) que unidas forman un texto.

Los strings se utilizan para representar texto. Ahora lo vas a modificar.

En el código, reemplaza Hola por Adios, y ejecuta el programa. Veras que ahora el mensaje que sale es Adios mundo!

const std = @import("std");

pub fn main() !void {
    std.debug.print("Adios mundo!\n", .{}); 
}

Codigo

Strings

Los strings tienen algunas reglas:

Para que sea fácil diferenciarlos, los strings automáticamente se marcan de color rojizo.

Un string siempre inicia con una comilla doble ", y termina con otra. Las comillas marcan el inicio y fin del string.

Si colocas una comilla dentro de un string, lo que pasará es que el string terminará antes. Eso lo podrás ver por el color:

Codigo

En la imagen superior puedes notar que Juan está de color azúl, no rojo.

Dentro de un string puede ir (casi) cualquier texto, con tal que esté dentro de la misma linea. Si la linea termina antes que el string, tendrás un error.

Codigo

Si quieres un texto con una linea nueva se utiliza una combinación especial de caracteres: \n. Estos 2 caracteres cuando estan juntos se traducen a una nueva linea:

const std = @import("std");

pub fn main() !void {
    std.debug.print("En la calle hay\nuna moto y un auto", .{}); 
}

Codigo

Esto último es llamado un “caracter de escape”. Hay varios de ellos, pero los veremos más adelante.

Impresión

Imprimir es que nuestro programa muestre un texto en pantalla. Todas las veces que hemos ejecutado nuestro programa, y aparecío un texto, hemos estado imprimiendo.

Zig tiene una instrucción para imprimir texto: std.debug.print, que hemos estado utilizando.

Esta instrucción tiene 3 partes:

  • 1: La instrucción en sí
  • 2: El texto (string) a imprimir
  • 3: Un dato adicional misterioso

Codigo

Dentro del string (2) podemos poner lo que querramos. Pero el resto tiene que estar igual, los parentesis, comas, llaves y punto y coma.

Adicionalmente, todas las instrucciones terminan con un punto y coma ;. Este señala que la instrucción terminó, y esta lista para ejecutarse.

En nuestro programa podemos tener varias intrucciones, cada una imprimiendo algo nuevo:

const std = @import("std");

pub fn main() !void {
    std.debug.print("Hola\n", .{}); 
    std.debug.print("Soy fernando\n", .{}); 
    std.debug.print("Adios\n", .{}); 
}

Codigo

Cada instrucción se coloca en una linea nueva.

Siguiente

En el siguiente artículo continuaremos trabajando con impresiones, y aprenderemos qué es ese dato adicional misterioso.

Ejercicios

Resuelve estos ejercicios en tu editor de texto VSCode. Al ejecutar debe salir en el terminal el mismo resultado que el del enunciado.

Si estas atascado en un problema puedes mostrar la solución, pero intenta resolverlos por ti mismo antes.

1: Utiliza std.debug.print para imprimir:

Son las 10:00pm

2: Escribe un programa que imprima el siguiente texto (necesitaras usar \n para crear 2 lineas):

hola mundo

3: Escribe un programa que imprima el siguiente texto. Utiliza 1 std.debug.print para cada linea

El cielo es azul

4: Escribe un programa que imprima el siguiente texto. Utiliza solo 1 std.debug.print;

El cielo es azul

5: Escribe un programa que imprima el siguiente texto (fíjate en los espacios en blanco antes de cada palabra):

El cielo es azul

6: Escribe un programa que imprima el siguiente texto (fíjate en las lineas en blanco):

linea 1 linea2 linea3