Compare commits

..

No commits in common. "7768e3c2067ff16ac6beb0f5890c75447b5afc99" and "8e8cb10d3bdc95d78168f5c9d814edb532899536" have entirely different histories.

14 changed files with 539 additions and 594 deletions

View File

@ -1,33 +1,16 @@
import { defineConfig } from 'astro/config'; import { defineConfig } from 'astro/config';
import tailwind from "@astrojs/tailwind"; import tailwind from "@astrojs/tailwind";
import mdx from "@astrojs/mdx"; import mdx from "@astrojs/mdx";
import {
transformerNotationDiff,
transformerNotationFocus,
transformerMetaHighlight,
transformerNotationHighlight,
transformerNotationErrorLevel,
transformerNotationWordHighlight,
} from '@shikijs/transformers'
// https://astro.build/config // https://astro.build/config
export default defineConfig({ export default defineConfig({
integrations: [tailwind(), mdx()], integrations: [tailwind(), mdx()],
markdown: { markdown: {
shikiConfig: { shikiConfig: {
themes: { themes: {
light: "catppuccin-latte", light: "catppuccin-latte",
dark: "dark-plus" dark: "github-dark"
}, }
transformers: [
transformerNotationDiff(),
transformerNotationFocus(),
transformerMetaHighlight(),
transformerNotationHighlight(),
transformerNotationErrorLevel(),
transformerNotationWordHighlight(),
],
defaultColor: false,
}
} }
}
}); });

View File

@ -6,7 +6,7 @@
} }
pre.astro-code { pre.astro-code {
padding-top: 1rem; padding: 1rem;
border-radius: 0.5rem; border-radius: 0.5rem;
border: solid 1px var(--c-border-1); border: solid 1px var(--c-border-1);
font-size: 0.8rem; font-size: 0.8rem;
@ -74,13 +74,15 @@ pre.astro-code>code .line::before {
} }
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
.astro-code {
background-color: var(--shiki-dark-bg) !important;
}
.astro-code, .astro-code,
.astro-code span { .astro-code span {
color: var(--shiki-dark) !important; color: var(--shiki-dark) !important;
background-color: var(--shiki-dark-bg) !important;
/* Optional, if you also want font styles */
font-style: var(--shiki-dark-font-style) !important;
font-weight: var(--shiki-dark-font-weight) !important;
text-decoration: var(--shiki-dark-text-decoration) !important;
} }
} }
@ -92,70 +94,3 @@ pre.astro-code>code .line::before {
#isso-thread input { #isso-thread input {
color: black; color: black;
} }
/* Shiki transformers */
.astro-code {
--shiki-highlight-color: #cccccc;
--shiki-highlight-word-color: #aaaaaa;
--shiki-error-bg-color: rgba(244, 63, 63, 0.25);
}
@media (prefers-color-scheme: dark) {
.astro-code {
--shiki-highlight-color: #343434;
--shiki-highlight-word-color: #3a3a3a;
--shiki-error-bg-color: rgba(244, 63, 94, 0.16);
}
}
.line {
display: inline-block;
width: 100%;
}
.line.highlighted:not(.error) {
background-color: var(--shiki-highlight-color) !important;
}
.line.highlighted.error {
background-color: var(--shiki-error-bg-color) !important;
}
.line .highlighted-word {
border: 1px solid var(--shiki-highlight-word-color);
border-radius: 0.25rem;
padding: 1px 3px;
margin: -1px -1px;
}
.line_
.diff {
display: inline-block;
width: 100vw;
margin: 0 -12px;
padding: 0 12px;
}
.diff.add {
background-color: #0505;
}
.diff.remove {
background-color: #8005;
}
.diff:before {
position: absolute;
left: 40px;
}
.has-focused .line:not(.focused) {
filter: blur(0.08rem);
transition: filter linear 250ms;
}
.has-focused:hover .line:not(.focuser) {
filter: none;
}

View File

@ -9,21 +9,21 @@
} }
@font-face { @font-face {
font-family: 'Iosevka Fixed Web'; font-family: 'Iosevka Fixed Web';
font-display: swap; font-display: swap;
font-weight: 700; font-weight: 700;
font-stretch: normal; font-stretch: normal;
font-style: normal; font-style: normal;
src: url('/Iosevka/Bold.woff2') format('woff2'); src: url('/Iosevka/Bold.woff2') format('woff2');
} }
@font-face { @font-face {
font-family: 'Iosevka Etoile Web'; font-family: 'Iosevka Etoile Web';
font-display: swap; font-display: swap;
font-weight: 900; font-weight: 900;
font-stretch: normal; font-stretch: normal;
font-style: normal; font-style: normal;
src: url('/IosevkaEtoile/Heavy.woff2') format('woff2'); src: url('/IosevkaEtoile/Heavy.woff2') format('woff2');
} }
/* Iosevka from Xe Iaso: https://xeiaso.net/ https://github.com/Xe/iosevka */ /* Iosevka from Xe Iaso: https://xeiaso.net/ https://github.com/Xe/iosevka */

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -4,7 +4,7 @@ title: "¿Con qué lenguaje de programación se crean los lenguajes de programac
description: | description: |
Vista superior de cómo funciona un lenguaje de programación Vista superior de cómo funciona un lenguaje de programación
realmente. realmente.
pubDate: "2024-07-14" pubDate: "2024-07-25"
tags: ["tech", "lenguajes", "tutorial"] tags: ["tech", "lenguajes", "tutorial"]
image: image:
url: "/img/blog/es/lang/cover.png" url: "/img/blog/es/lang/cover.png"

View File

@ -1,6 +1,6 @@
--- ---
layout: ../../../layouts/BlogLayoutEs.astro layout: ../../../layouts/BlogLayoutEs.astro
title: "Cero a Zig 01: Programación desde cero absoluto con Zig" title: "01: Programación desde cero absoluto con Zig"
description: | description: |
Aprendé a programar desde completamente cero, utilizando el lenguaje Aprendé a programar desde completamente cero, utilizando el lenguaje
de programación Zig. de programación Zig.

View File

@ -1,6 +1,6 @@
--- ---
layout: ../../../layouts/BlogLayoutEs.astro layout: ../../../layouts/BlogLayoutEs.astro
title: "Cero a Zig 02: Fundamentos" title: "02: Programación desde cero absoluto con Zig: Fundamentos"
description: | description: |
Fundamentos de la computación, programas, componentes Fundamentos de la computación, programas, componentes
pubDate: "2024-07-16" pubDate: "2024-07-16"

View File

@ -1,174 +1,141 @@
--- ---
layout: ../../../layouts/BlogLayoutEs.astro layout: ../../../layouts/BlogLayoutEs.astro
title: "Cero a Zig 03: Instalando VSCode y Zig" title: "03: Programación desde cero: Hola mundo"
description: | description: |
Instalamos Zig y VSCode en nuestro computador Escribí el tradicional programa "Hola mundo" por tí mismo!
pubDate: "2024-07-17" pubDate: "2024-07-17"
tags: ["tech", "lenguajes", "intro", "tutorial", "zig", "VSCode"] tags: ["tech", "lenguajes", "intro", "tutorial", "zig"]
image: image:
url: "" url: ""
alt: "" alt: ""
caption: "" caption: ""
--- ---
En este artículo vamos a instalar 2 cosas en nuestro computador:
[Zig](https://ziglang.org/) y
[Visual Studio Code](https://code.visualstudio.com/).
Necesitamos estas 2 herramientas antes de poder empezar a programar.
En este artículo vamos a escribir nuestro primer programa: Hola mundo. Vamos a
modificarlo y entender algunos otros conceptos.
Ya que este es un tutorial básico de programación, asumo que ## Hola mundo
estas utilizando Windows. Yo usaré Windows 10, pero las instrucciones
funcionan igual en Windows 11.
Hola mundo es tradicionalmente el [primer programa](https://es.wikipedia.org/wiki/Hola_mundo)
que se escribe cuando se aprende a programar.
## Descargar e instalar VSCode Vamos a empezar con este programa. Entra a la siguiente página web:
[https://zig.fly.dev/p/xNluereqmgW](https://zig.fly.dev/p/xNluereqmgW)
Si sabes como instalar un programa y no necesitas instrucciones Veras lo siguiente:
paso a paso, saltate esta sección y [ve a la siguiente sección](#introducción-a-vscode).
Primero busca `VSCode` en Google, y entra a la primera página que ![Zig online 1](/img/blog/es/tutorial/007-zig1.jpg)
sale.
![Resultados de google](/img/blog/es/tutorial/070-zig.jpg) Arriba está el nombre de la página: "Zig Playground". A su derecha hay 3 botones en inglés:
Una vez en la página descarga VSCode con el boton grande y azul. - "Run" ejecuta el programa.
- "Format" hace algo llamado 'formatear' el código. No lo usaremos aún.
- "Share" comparte el código que escribimos. No lo usaremos.
![Página de VSCode](/img/blog/es/tutorial/071-zig.jpg) Dentro del recuadro plomo está escrito el código **Zig**. No lo modifiques aún.
Se abrirá una nueva ventana en la esquina superior derecha. Si lo modificaste y quieres volver al código original, cierra la página y vuelve a
Cuando termine de descargarse, ábrelo haciendole click. abrirla con el link de arriba.
![Descarga de VSCode](/img/blog/es/tutorial/072-zig.jpg) ## Ejecutando el código
Presiona el boton "Run". Aparecerá texto debajo del recuadro del código:
Se abrirá una nueva ventana. Primero selecciona ![Zig online 2](/img/blog/es/tutorial/008-zig.png)
"Acepto el acuerdo" y despues presiona el boton "Siguiente".
![Instalación de VSCode](/img/blog/es/tutorial/073-zig.jpg) Este texto es el resultado de ejecutar el programa. Se lee:
Volveran a salir nuevas ventanas. Presiona "Siguiente" en todas. - `Hola mundo!` : Este es el resultado del programa.
- `Program exited.` : Significa "El programa terminó" en ingles. Nos
indica que el programa terminó de ejecutarse. Puedes ignorarlo.
![Instalación](/img/blog/es/tutorial/074-zig.jpg) Felicidades! Has ejecutado tu primer programa.
Cuando salga "Instalar" en vez de "Siguiente", presionalo. > Desafio: Borra todo el código y vuelve a escribirlo, exactamente igual.
Utiliza la imágen como guía.
![Instalación](/img/blog/es/tutorial/075-zig.jpg)
Finalmente, saldrá una última ventana. Presiona "Finalizar" ## ¿Qué significan todas estas letras?
y se abrirá VSCode.
![Instalación](/img/blog/es/tutorial/076-zig.jpg) Como verás, hay un monton de palabras y símbolos con colorcitos.
Este es el código, es como un lenguaje especial utilizado
para comunicarse con el computador.
También puedes abrir VSCode desde el menú de inicio de Así como el francés, árabe o coreano, el **lenguaje** de programación Zig
Windows. tiene un conjunto de reglas. Aprenderemos las reglas a medida que avance
el tiempo. Mientras tanto, puedes ignorar todas esas palabras.
![Instalación](/img/blog/es/tutorial/044-zig.jpg) > ¿Que pasa si eliminas alguna de esas palabras y ejecutas el programa
(con el boton "Run")? ¿Qué mensaje obtienes? ¿Qué crees que significa?
## Magia negra y abstracción
## Introducción a VSCode Según [Significados.com](https://www.significados.com/abstracto/),
abstracto significa vago, impreciso, teórico, que no tiene existencia
física (entre otras cosas). Algo abstracto suele ser algo difícil
de entender, o imaginario.
VSCode es un "IDE", un programa que trae muchas funciones
útiles a la hora de programar. Lo vamos a utilizar a partir
de ahora para aprender a programar en Zig.
La primera vez que se abre VSCode se ve así: En programación, abstracto tiene otro significado. Puedes buscar su
definición técnica en internet, pero me parece muy confusa para
un principiante, así que lo explicare en mis términos.
![VSCode](/img/blog/es/tutorial/045-zig.jpg) En programación, abstracto significa que sabemos **qué** hace, pero
no **cómo** lo hace. Un ejemplo claro sería un auto. Sabemos que
al pisar el acelerador, el auto avanza. Pero no sabemos **cómo**
pisar el acelerador ocasiona que el combustible se transforme en
energía cinemática.
Hay un monton de botones y divisiones. No te preocupes en Por ejemplo, voy a hablar más adelante de "imprimir" en el programa.
entenderlo todo ahora mismo. Imprimir significa mostrar un mensaje en la pantalla. Sin embargo,
no te voy a explicar cómo funciona la impresión. El concepto de
"imprimir" es abstracto.
Notarás que el programa está en inglés. Ahora te mostraré ### Magia negra
cómo ponerlo en español.
### Cambiar idioma a español Escuché este termino del canal de Youtube Imesi.net. Magia negra
es algo que: no se qué hace, cómo funciona, ni tampoco me importa.
A la izquierda arriba hay una serie de botones. Presiona el último, Voy a utilizar el término "magia negra" para referirme a algo
que tiene unos cuadros. por lo que no necesitas preocuparte, o intentar entender. Por
ejemplo, en el código de más arriba:
![Ext](/img/blog/es/tutorial/046-zig.jpg) ![Zig online 1](/img/blog/es/tutorial/007-zig1.jpg)
Esto abre una pestaña donde podemos buscar "Extensiones". Todo el texto que dice:
Las extensiones agregan características a VSCode.
Primero vamos a instalar el idioma español. En la barra de búsqueda ```zig
escribe "español": const std = @import("std")
![Ext](/img/blog/es/tutorial/047-zig.jpg) pub fn main() {
std.debug.print();
}
```
Y presiona el botón azul "Install" del primer item de la lista es magia negra. Funciona, hace algo, pero no importa. No te
que dice "Spanish": preocupes en intentar entenderlo.
![Ext](/img/blog/es/tutorial/048-zig.jpg) Eventualmente, y a medida que aprendas conceptos nuevos,
entenderas qué significan esas cosas.
Luego de eso, abajo a la derecha saldrá un mensaje.
Presiona el botón azul:
![Ext](/img/blog/es/tutorial/049-zig.jpg) ## Inglés
El programa se reiniciará, y ahora estará en español. Como habras visto, prácticamente todo el código está en inglés.
Si ya sabes ingles, o lo estas aprendiendo, no tendrás muchos
problemas continuando.
Ahora vamos a instalar la extensión de Zig. En mi opinion, programar sin saber inglés es contraproducente.
Los lenguajes de programación (en su mayoría) se escriben en
inglés, las mnemotécnicas están en inglés, y mucha información
útil e importante está en inglés. Programar sin saber inglés
es sumamente difícil.
Seguramente aprenderás algunas palabras a lo largo del tutorial,
pero lo mejor que podrías hacer es aprender inglés.
### Instalar la extensión de Zig
Regresa a la pestaña de extensiones:
![Ext](/img/blog/es/tutorial/046-zig.jpg)
Y busca "Zig". Instala la extensión que se llama
"Zig Language" y dice "ziglang":
![Ext](/img/blog/es/tutorial/050-zig.jpg)
Cuando se haya instalado puedes cerrar la pestaña:
![Ext](/img/blog/es/tutorial/051-zig.jpg)
Y volver al inicio:
![Ext](/img/blog/es/tutorial/052-zig.jpg)
## Instalar Zig
Hemos instalado la extensión de Zig, ahora instalaremos algo
llamado "Compilador".
Presiona `Control + Shift + P`, se abrirá una ventana arriba
en el centro:
![Zig](/img/blog/es/tutorial/066-zig.jpg)
En la barra de busqueda escribe `Zig`, y presiona el botón
`Zig Setup: Install Zig`:
![Zig](/img/blog/es/tutorial/067-zig.jpg)
En el dialogo que sale, presiona "Install".
![Zig](/img/blog/es/tutorial/064-zig.jpg)
Saldrá una nueva ventana, donde hay que escoger una versión.
Elije la versión debajo de `nightly`. Al momento de escribir
esto es `0.13.0`.
![Zig](/img/blog/es/tutorial/068-zig.jpg)
Saldrá una nueva ventana, presiona "Install".
![Zig](/img/blog/es/tutorial/065-zig.jpg)
Y selecciona la misma versión de antes. En mi caso, `0.13.0`.
![Zig](/img/blog/es/tutorial/068-zig.jpg)
Con eso terminamos. Hemos instalado Zig en nuestro computador.
En el siguiente artículo aprenderemos del terminal y
crearemos un proyecto.

View File

@ -1,170 +1,171 @@
--- ---
layout: ../../../layouts/BlogLayoutEs.astro layout: ../../../layouts/BlogLayoutEs.astro
title: "Cero a Zig 04: Terminal y Proyecto Zig" title: "04: Programación desde cero: Modificando el hola mundo"
description: | description: |
Veremos el terminal y cómo crear/ejecutar un proyecto de Zig Impresión, strings/cadenas y stdout.
pubDate: "2024-07-18" pubDate: "2024-07-30"
tags: ["tech", "lenguajes", "intro", "tutorial", "zig", "VSCode"] tags: ["tech", "lenguajes", "intro", "tutorial", "zig"]
image: image:
url: "/vid/hacker.webp" url: ""
alt: "" alt: ""
caption: "" caption: ""
--- ---
Seguramente has visto imágenes/videos de hackers antes, En el artículo anterior escribimos nuestro primer programa:
escribiendo en una pantalla negra con letras verdes. Hola mundo. En este artículos vamos a modificar el mensaje
Ahora tu también, podras escribir en una pantalla negra y aprender el primer concepto: Strings
(pero sin letras verdes).
En este artículo veremos el terminal, crearemos un proyecto
de Zig en nuestro computador, y lo ejecutaremos.
En el artículo anterior ya instalamos VSCode y Zig, así que a partir
de ahora me referiré a ellos.
## El terminal ## Modificando "Hola mundo"
[El/la terminal](https://en.wikipedia.org/wiki/Command-line_interface) Entra a la página web
es una forma de interactuar con nuestro computador, y se utiliza [https://zig.fly.dev/p/xNluereqmgW](https://zig.fly.dev/p/xNluereqmgW),
muchisimo en programación. donde se encuentra el programa "Hola mundo". Esta vez vamos a modificar
el mensaje.
En el terminal escribimos comandos, el computador los ejecuta, El resto de las palabras son magia negra. Te habras dado cuenta que
y nos responde. En cierto modo es como una versión mini de la hay palabras en español: Hola y mundo.
programación.
Dentro de VSCode, en los menus de arriba a la izquierda, selecciona ![Zig online](/img/blog/es/tutorial/009-zig.jpg)
los 3 puntos, `Terminal`, `Nuevo Terminal`:
![Terminal](/img/blog/es/tutorial/053-zig.jpg) Hay varias cosas que notar:
Aparecerá una nueva ventana en blanco abajo: - Estan pintadas de color amarillo
- Tienen comillas dobles `"` al inicio y al final
![Terminal](/img/blog/es/tutorial/054-zig.jpg) Dentro de estas comillas `"` podemos escribir el texto que querramos.
Este es nuestro terminal. Aquí escribiremos algunos comandos Por ejemplo, si reemplazas `Hola` por `Adios` y ejecutas el programa,
para crear un "proyecto" y "ejecutarlo". se imprimirá `Adios mundo!`
![Zig online](/img/blog/es/tutorial/010-zig.jpg)
![Zig online](/img/blog/es/tutorial/011-zig.jpg)
Y también, si reemplazas `mundo` por otra palabra, se imprimirá
lo que escribiste.
Tambien puedes agregar otro texto en ambos lados. Por ejemplo:
![Zig online](/img/blog/es/tutorial/012-zig.jpg)
## Creando un proyecto de Zig ## Strings / cadenas de caracteres
Un proyecto es una carpeta con una serie de archivos, Los strings (cadenas de caracteres en inglés) son la forma
en los cuales programaremos nuestro programa. en la que almacenamos texto.
Haz click en en el terminal y escribe `mkdir tutorial` Un string empieza con una comilla doble `"`, el contenido
del string, y termina con una comilla doble `"`.
![Terminal](/img/blog/es/tutorial/055-zig.jpg) Unos ejemplos de strings son: `"hola"`, `"adios"`,
`"multiples palabras"`, `"123456"`.
`mkdir` es el "comando" que ejecutará la computadora, En el programa de arriba hay 2 strings:
y `tutorial` es un "argumento" que recibe el comando.
`mkdir` viene del inglés "make directory", y crea una ![Zig online](/img/blog/es/tutorial/013-zig.jpg)
carpeta nueva. En este caso estamos creando una carpeta
llamada `tutorial`.
Presiona enter para ejecutar el comando. Estos strings son lo que se muestra en pantalla al
ejecutar el programa.
![Terminal](/img/blog/es/tutorial/056-zig.jpg) Los strings tienen algunas características:
En el terminal veremos siempre: - En el código, los strings tienen otro color para que
sea más fácil identificarlos.
- No puede haber comillas dentro de un string.
1. (1) La carpeta en donde estamos El string termina cuando aparece la primera comilla.
2. (2) El comando que escribimos Por ejemplo:
Algunos comandos tienen una "respuesta". En la imágen ![Zig online](/img/blog/es/tutorial/014-zig.jpg)
de arriba la respuesta es una confirmación de la carpeta
que creamos.
Ahora vamos a ejecutar otro comando: `cd tutorial` Aquí el string termina despues del `Hola `, la palabra
`familia` no es parte del string. Puedes ver que el
color amarillo del string termina en la segunda comilla,
y la palabra familia está de color blanco.
![Terminal](/img/blog/es/tutorial/057-zig.jpg) - No puede haber nuevas lineas en un string. Esto es un error:
`cd` es una abreviación de "change directory", que ![Zig online](/img/blog/es/tutorial/015-zig.jpg)
significa cambiar de carpeta. Usando este comando cambiamos
la carpeta en la que estamos.
Ahora vamos a crear el proyecto de Zig, con el comando Sin embargo, hay ocasiones donde queremos tener varias lineas
`zig init`: en un string. Para esto se utilizan 2 caracteres especiales:
`\n`. Estos nos permiten "señalar" que ahí va una linea nueva.
![Terminal](/img/blog/es/tutorial/058-zig.jpg) ![Zig online](/img/blog/es/tutorial/016-zig.jpg)
El comando `zig` nos permite realizar varias acciones, Estos caracteres especiales se conocen como "caracteres de escape".
que veremos con el tiempo. Hay varios de ellos, pero no los veremos por ahora.
Al ejecutar `zig init` creamos un proyecto nuevo en
la carpeta actual. Esto crea una serie de archivos
y carpeta, que ahora abriremos.
Esto solo se hace una vez. Luego vamos a reutilizar el proyecto
que acabamos de crear.
## Abriendo el proyecto ## Impresión
Dentro de VSCode, presionamos el boton "Abrir carpeta". Imprimir es mostrar información a través de la pantalla. Esta
información puede ser palabras, letras, números, símbolos, etc.
![VSCode](/img/blog/es/tutorial/059-zig.jpg) Para imprimir en Zig se escribe lo siguiente:
Si no puedes ver este boton, asegurate de estar en la primera pestaña: ![Zig online](/img/blog/es/tutorial/017-zig.jpg)
![Ext](/img/blog/es/tutorial/052-zig.jpg) `std.debug.print` es una invocación que imprime lo que tenga
dentro. Para poner algo dentro, se utilizan parentesis `()`.
Aquí seleccionamos la carpeta `tutorial`. Esta es la carpeta que Dentro de los paréntesis va el string que queremos imprimir
acabamos de crear en el terminal. y una secuencia misteriosa, así: `("Tu mensaje", .{})`.
![VSCode](/img/blog/es/tutorial/060-zig.jpg) Y finalmente, muy importante, todas las invocaciones
terminan con un punto y coma `;`. Si la invocación
no termina con su punto y coma tendrás un error misterioso.
Nos saldrá el mensaje de la imagen de abajo. Selecciona "Confiar en Por ejemplo, para imprimir un nuevo texto `Me gusta Zig`
los autores..." y presiona "Si, confio en los autores". se escribiriá el código así:
![VSCode](/img/blog/es/tutorial/061-zig.jpg) `std.debug.print("Me gusta Zig", .{});`
Ahora veras que en vez del boton "Abrir carpeta" ahora hay una Podemos tener varias invocaciones a la vez, y ejecutarlas en
serie de archivos. siempre que la invocación esté bien escrita.
![VSCode](/img/blog/es/tutorial/062-zig.jpg) ![Zig online](/img/blog/es/tutorial/018-zig.jpg)
Este es nuestro proyecto. Aquí es donde estarán todos los archivos Y al ejecutar el programa se imprimiran los mensajes en orden.
que usaremos.
- Carpeta `src`: Contiene el código que ejecutaremos ![Zig online](/img/blog/es/tutorial/019-zig.jpg)
- `build.zig`: Archivo mágico. Es mejor no tocarlo.
- `build.zig.zon`: Archivo mágico. Es mejor no tocarlo.
Haz click en la carpeta `src` y en el archivo `main.zig`:
![VSCode](/img/blog/es/tutorial/063-zig.jpg)
Este es el archivo donde trabajemos por el resto de la serie.
![VSCode](/img/blog/es/tutorial/078-zig.jpg)
Veras que hay un monton de código raro, que aun no sabemos qué
significa. Por ahora lo vamos a dejar así.
## Ejecutando el proyecto ## Nuevas lineas
Ahora que instalamos Zig en nuestro computador, tenemos que ejecutar Notarás que el mensaje se imprimió junto: `Mi primera impresiónMe gusta Zig`.
el programa en nuestro computador. Eso lo haremos desde el terminal.
Este es un buen momento para presentar un concepto muy importante:
la computadora hace lo que le pides, no lo que quieres.
El código que ejecutamos no le pide a la computadora que imprima
una nueva linea `\n`. Así que la computadora no la imprime.
Para tener una nueva linea hay que incluirla en los strings, y con
eso al ejecutar estará cada linea separada:
![Zig online](/img/blog/es/tutorial/020-zig.jpg)
![Zig online](/img/blog/es/tutorial/021-zig.jpg)
Ve al terminal y ejecuta `zig build run`. Veras un monton de texto
raro, pero al final debería quedar así:
![VSCode](/img/blog/es/tutorial/077-zig.jpg) ## Glosario
No es necesario que memorices o entiendas estas palabras.
- String: "cadena de caracteres"
- `const`: abreviatura de "constante", que no cambia
- `std`: abreviatura de "estandar"
- `import`: "importar"
- `pub`: abreviatura de "público", que es accesible
- `fn`: abreviatura de "función". en este artículo les llamé
invocaciones
- `void`: "vacio"
- `main`: "principal"
- `debug`: el debugging es un proceso mediante el cual
se eliminan errores (tambien conocidos como "bugs")
- `print`: "imprimir"
Y también notarás que aparecieron 2 carpetas nuevas: `.zig-cache`
y `zig-out`. Ignóralas.
Y listo! Has ejecutado el proyecto!
En el siguiente artículo empezaremos a escribir nuestro propio
código, y a descifrar cada una de las partes que tiene Zig.
También, en el futuro voy a decir constantemente "Ejecuta el
código" o "Ejecuta el programa". Esto significa ir al terminal
y ejecutar el comando `zig build run`,
como lo acabas de hacer.

View File

@ -1,148 +1,174 @@
--- ---
layout: ../../../layouts/BlogLayoutEs.astro layout: ../../../layouts/BlogLayoutEs.astro
title: "Cero a Zig 05: Hola mundo" title: "05: Cero a Zig: Instalando VSCode y Zig"
description: | description: |
Escribimos nuestro primer programa: Hola mundo! Instalamos Zig y VSCode en nuestro computador
pubDate: "2024-07-19" pubDate: "2024-08-08"
tags: ["tech", "lenguajes", "intro", "tutorial", "zig"] tags: ["tech", "lenguajes", "intro", "tutorial", "zig", "VSCode"]
image: image:
url: "" url: ""
alt: "" alt: ""
caption: "" caption: ""
--- ---
En este artículo vamos a instalar 2 cosas en nuestro computador:
[Zig](https://ziglang.org/) y
[Visual Studio Code](https://code.visualstudio.com/).
En este artículo vamos a escribir nuestro primer programa: Hola mundo. Vamos a En los artículos anteriores habíamos escrito nuestro código en
modificarlo y entender algunos otros conceptos. una página web. Sin embargo, lo mejor es escribir el código
(programar) y ejecutarlo en nuestro computador.
## Hola mundo Ya que este es un tutorial básico de programación, asumo que
estas utilizando Windows. Yo usaré Windows 10, pero las instrucciones
Hola mundo es tradicionalmente el [primer programa](https://es.wikipedia.org/wiki/Hola_mundo) funcionan igual en Windows 11.
que se escribe cuando se aprende a programar.
Abre VSCode y abre el proyecto que creaste en el artículo anterior.
Allí, abre el archivo `src/main.zig`.
![VSCode](/img/blog/es/tutorial/063-zig.jpg)
A partir de ahora vamos a trabajar en ese único archivo.
Verás un montón de código raro:
![VSCode](/img/blog/es/tutorial/078-zig.jpg)
Vamos a eliminar todo y escribir desde cero.
## Hola mundo ## Descargar e instalar VSCode
El primer programa siempre es el más fácil. Vas a escribirlo Si sabes como instalar un programa y no necesitas instrucciones
(o copiar y pegar) y ejecutarlo. paso a paso, saltate esta sección.
Borra todo el contenido del archivo `src/main.zig` y Primero busca `VSCode` en Google, y entra a la primera página que
coloca lo siguiente: sale.
```zig ![Resultados de google](/img/blog/es/tutorial/070-zig.jpg)
const std = @import("std");
pub fn main() !void { Una vez en la página descarga VSCode con el boton grande y azul.
std.debug.print("Hola mundo!\n", .{});
}
```
Entra a `src/main.zig` y reemplaza todo el código que está ahí ![Página de VSCode](/img/blog/es/tutorial/071-zig.jpg)
por el código de arriba.
> Nota: Puede que notes que las imágenes no sean exáctamente Se abrirá una nueva ventana en la esquina superior derecha.
iguales a como cuando escribas el código. Cuando termine de descargarse, ábrelo haciendole click.
No te preocupes, no es un problema.
Una vez que hayas modificado el código, verás un punto blanco arriba: ![Descarga de VSCode](/img/blog/es/tutorial/072-zig.jpg)
![VSCode](/img/blog/es/tutorial/080-zig.jpg)
Esto significa que el archivo está modificado, pero no guardado.
Presiona `Control + S` para guardar el archivo.
Ahora, ejecuta el código: Ve al terminal y ejecuta el comando
`zig build run`:
> Nota: Verás que mi terminal se ve diferente. Pero lo importante
son los comandos, y el resultado.
![VSCode](/img/blog/es/tutorial/081-zig.jpg)
El resultado sale abajo: `Hola mundo!`.
¡Ejecutaste tu primer programa! Se abrirá una nueva ventana. Primero selecciona
"Acepto el acuerdo" y despues presiona el boton "Siguiente".
## ¿Qué significan todas estas letras? ![Instalación de VSCode](/img/blog/es/tutorial/073-zig.jpg)
Como verás, hay un monton de palabras y símbolos con colorcitos. Volveran a salir nuevas ventanas. Presiona "Siguiente" en todas.
Este es el código, es como un lenguaje especial utilizado
para comunicarse con el computador.
Así como el francés, árabe o coreano, el **lenguaje** de programación Zig ![Instalación](/img/blog/es/tutorial/074-zig.jpg)
tiene un conjunto de reglas. Aprenderemos las reglas a medida que avance
el tiempo. Mientras tanto, puedes ignorar todas esas palabras.
Cuando salga "Instalar" en vez de "Siguiente", presionalo.
## Magia negra ![Instalación](/img/blog/es/tutorial/075-zig.jpg)
Escuché este termino del canal de Youtube Imesi.net. Magia negra Finalmente, saldrá una última ventana. Presiona "Finalizar"
es algo que: no se cómo funciona, ni tampoco me importa. y se abrirá VSCode.
Solo me importa lo que hace.
Voy a utilizar el término "magia negra" para referirme a algo ![Instalación](/img/blog/es/tutorial/076-zig.jpg)
por lo que no necesitas preocuparte, o intentar entender. Por
ejemplo, en el codigo que escribiste y ejecutaste,
todo lo de rojo es magia negra:
También puedes abrir VSCode desde el menú de inicio de
Windows.
```zig ![Instalación](/img/blog/es/tutorial/044-zig.jpg)
const std = @import("std"); // [!code error:3]
pub fn main() !void {
std.debug.print("Hola mundo!\n", .{});
} // [!code error]
```
Todo lo de rojo tiene un significado, pero aun no necesitamos
saber cuál es. Pero es importante que este ahí, tal como está
escrito.
Lo que nosotros vamos a escribir es lo de "adentro":
```zig
const std = @import("std");
pub fn main() !void {
std.debug.print("Hola mundo!\n", .{}); // [!code focus] // [!code highlight]
}
```
Y a medida que aprendamos conceptos nuevos, descifraremos
qué significan todas esas cosas.
## Inglés ## Introducción a VSCode
Como habras visto, prácticamente todo el código está en inglés. VSCode es un "IDE", un programa que trae muchas funciones
Si ya sabes ingles, o lo estas aprendiendo, no tendrás muchos útiles a la hora de programar. Lo vamos a utilizar a partir
problemas continuando. de ahora para aprender a programar en Zig.
En mi opinion, programar sin saber inglés es contraproducente. La primera vez que se abre VSCode se ve así:
Los lenguajes de programación (en su mayoría) se escriben en
inglés, las mnemotécnicas están en inglés, y mucha información
útil e importante está en inglés. Programar sin saber inglés
es sumamente difícil.
Seguramente aprenderás algunas palabras a lo largo del tutorial, ![VSCode](/img/blog/es/tutorial/045-zig.jpg)
pero lo mejor que podrías hacer es aprender inglés.
Hay un monton de botones y divisiones. No te preocupes en
entenderlo todo ahora mismo.
Notarás que el programa está en inglés. Ahora te mostraré
cómo ponerlo en español.
### Cambiar idioma a español
A la izquierda arriba hay una serie de botones. Presiona el último,
que tiene unos cuadros.
![Ext](/img/blog/es/tutorial/046-zig.jpg)
Esto abre una pestaña donde podemos buscar "Extensiones".
Las extensiones agregan características a VSCode.
Primero vamos a instalar el idioma español. En la barra de búsqueda
escribe "español":
![Ext](/img/blog/es/tutorial/047-zig.jpg)
Y presiona el botón azul "Install" del primer item de la lista
que dice "Spanish":
![Ext](/img/blog/es/tutorial/048-zig.jpg)
Luego de eso, abajo a la derecha saldrá un mensaje.
Presiona el botón azul:
![Ext](/img/blog/es/tutorial/049-zig.jpg)
El programa se reiniciará, y ahora estará en español.
Ahora vamos a instalar la extensión de Zig.
### Instalar la extensión de Zig
Regresa a la pestaña de extensiones:
![Ext](/img/blog/es/tutorial/046-zig.jpg)
Y busca "Zig". Instala la extensión que se llama
"Zig Language" y dice "ziglang":
![Ext](/img/blog/es/tutorial/050-zig.jpg)
Cuando se haya instalado puedes cerrar la pestaña:
![Ext](/img/blog/es/tutorial/051-zig.jpg)
Y volver al inicio:
![Ext](/img/blog/es/tutorial/052-zig.jpg)
## Instalar Zig
Hemos instalado la extensión de Zig, ahora instalaremos algo
llamado "Compilador".
Presiona `Control + Shift + P`, se abrirá una ventana arriba
en el centro:
![Zig](/img/blog/es/tutorial/066-zig.jpg)
En la barra de busqueda escribe `Zig`, y presiona el botón
`Zig Setup: Install Zig`:
![Zig](/img/blog/es/tutorial/067-zig.jpg)
En el dialogo que sale, presiona "Install".
![Zig](/img/blog/es/tutorial/064-zig.jpg)
Saldrá una nueva ventana, donde hay que escoger una versión.
Elije la versión debajo de `nightly`. Al momento de escribir
esto es `0.13.0`.
![Zig](/img/blog/es/tutorial/068-zig.jpg)
Saldrá una nueva ventana, presiona "Install".
![Zig](/img/blog/es/tutorial/065-zig.jpg)
Y selecciona la misma versión de antes. En mi caso, `0.13.0`.
![Zig](/img/blog/es/tutorial/068-zig.jpg)
Con eso terminamos. Hemos instalado Zig en nuestro computador.
En el siguiente artículo utilizaremos estas herramientas.

View File

@ -1,171 +1,209 @@
--- ---
layout: ../../../layouts/BlogLayoutEs.astro layout: ../../../layouts/BlogLayoutEs.astro
title: "Cero a Zig 06: Modificando el hola mundo" title: "06: Cero a Zig: Terminal y Proyecto Zig"
description: | description: |
Impresión, strings/cadenas y stdout. Veremos el terminal y cómo crear/ejecutar un proyecto de Zig
pubDate: "2024-07-30" pubDate: "2024-08-09"
tags: ["tech", "lenguajes", "intro", "tutorial", "zig"] tags: ["tech", "lenguajes", "intro", "tutorial", "zig", "VSCode"]
image: image:
url: "" url: "/vid/hacker.webp"
alt: "" alt: ""
caption: "" caption: ""
--- ---
En el artículo anterior escribimos nuestro primer programa: Seguramente has visto imágenes/videos de hackers antes,
Hola mundo. En este artículos vamos a modificar el mensaje escribiendo en una pantalla negra con letras verdes.
y aprender el primer concepto: Strings Ahora tu también, podras escribir en una pantalla negra
(pero sin letras verdes).
En este artículo veremos el terminal, crearemos un proyecto
de Zig en nuestro computador, y lo ejecutaremos.
En el artículo anterior ya instalamos VSCode y Zig, así que a partir
de ahora me referiré a ellos.
## Modificando "Hola mundo" ## El terminal
Entra a la página web [El/la terminal](https://en.wikipedia.org/wiki/Command-line_interface)
[https://zig.fly.dev/p/xNluereqmgW](https://zig.fly.dev/p/xNluereqmgW), es una forma de interactuar con nuestro computador, y se utiliza
donde se encuentra el programa "Hola mundo". Esta vez vamos a modificar muchisimo en programación.
el mensaje.
El resto de las palabras son magia negra. Te habras dado cuenta que En el terminal escribimos comandos, el computador los ejecuta,
hay palabras en español: Hola y mundo. y nos responde. En cierto modo es como una versión mini de la
programación.
![Zig online](/img/blog/es/tutorial/009-zig.jpg) Dentro de VSCode, en los menus de arriba a la izquierda, selecciona
los 3 puntos, `Terminal`, `Nuevo Terminal`:
Hay varias cosas que notar: ![Terminal](/img/blog/es/tutorial/053-zig.jpg)
- Estan pintadas de color amarillo Aparecerá una nueva ventana en blanco abajo:
- Tienen comillas dobles `"` al inicio y al final
Dentro de estas comillas `"` podemos escribir el texto que querramos. ![Terminal](/img/blog/es/tutorial/054-zig.jpg)
Por ejemplo, si reemplazas `Hola` por `Adios` y ejecutas el programa, Este es nuestro terminal. Aquí escribiremos algunos comandos
se imprimirá `Adios mundo!` para crear un "proyecto" y "ejecutarlo".
![Zig online](/img/blog/es/tutorial/010-zig.jpg)
![Zig online](/img/blog/es/tutorial/011-zig.jpg)
Y también, si reemplazas `mundo` por otra palabra, se imprimirá
lo que escribiste.
Tambien puedes agregar otro texto en ambos lados. Por ejemplo:
![Zig online](/img/blog/es/tutorial/012-zig.jpg)
## Strings / cadenas de caracteres ## Creando un proyecto de Zig
Los strings (cadenas de caracteres en inglés) son la forma Un proyecto es una carpeta con una serie de archivos,
en la que almacenamos texto. en los cuales programaremos nuestro programa.
Un string empieza con una comilla doble `"`, el contenido Haz click en en el terminal y escribe `mkdir tutorial`
del string, y termina con una comilla doble `"`.
Unos ejemplos de strings son: `"hola"`, `"adios"`, ![Terminal](/img/blog/es/tutorial/055-zig.jpg)
`"multiples palabras"`, `"123456"`.
En el programa de arriba hay 2 strings: `mkdir` es el "comando" que ejecutará la computadora,
y `tutorial` es un "argumento" que recibe el comando.
![Zig online](/img/blog/es/tutorial/013-zig.jpg) `mkdir` viene del inglés "make directory", y crea una
carpeta nueva. En este caso estamos creando una carpeta
llamada `tutorial`.
Estos strings son lo que se muestra en pantalla al Presiona enter para ejecutar el comando.
ejecutar el programa.
Los strings tienen algunas características: ![Terminal](/img/blog/es/tutorial/056-zig.jpg)
- En el código, los strings tienen otro color para que En el terminal veremos siempre:
sea más fácil identificarlos.
- No puede haber comillas dentro de un string.
El string termina cuando aparece la primera comilla. 1. (1) La carpeta en donde estamos
Por ejemplo: 2. (2) El comando que escribimos
![Zig online](/img/blog/es/tutorial/014-zig.jpg) Algunos comandos tienen una "respuesta". En la imágen
de arriba la respuesta es una confirmación de la carpeta
que creamos.
Aquí el string termina despues del `Hola `, la palabra Ahora vamos a ejecutar otro comando: `cd tutorial`
`familia` no es parte del string. Puedes ver que el
color amarillo del string termina en la segunda comilla,
y la palabra familia está de color blanco.
- No puede haber nuevas lineas en un string. Esto es un error: ![Terminal](/img/blog/es/tutorial/057-zig.jpg)
![Zig online](/img/blog/es/tutorial/015-zig.jpg) `cd` es una abreviación de "change directory", que
significa cambiar de carpeta. Usando este comando cambiamos
la carpeta en la que estamos.
Sin embargo, hay ocasiones donde queremos tener varias lineas Ahora vamos a crear el proyecto de Zig, con el comando
en un string. Para esto se utilizan 2 caracteres especiales: `zig init`:
`\n`. Estos nos permiten "señalar" que ahí va una linea nueva.
![Zig online](/img/blog/es/tutorial/016-zig.jpg) ![Terminal](/img/blog/es/tutorial/058-zig.jpg)
Estos caracteres especiales se conocen como "caracteres de escape". El comando `zig` nos permite realizar varias acciones,
Hay varios de ellos, pero no los veremos por ahora. que veremos con el tiempo.
Al ejecutar `zig init` creamos un proyecto nuevo en
la carpeta actual. Esto crea una serie de archivos
y carpeta, que ahora abriremos.
## Impresión ## Abriendo el proyecto
Imprimir es mostrar información a través de la pantalla. Esta Dentro de VSCode, presionamos el boton "Abrir carpeta".
información puede ser palabras, letras, números, símbolos, etc.
Para imprimir en Zig se escribe lo siguiente: ![VSCode](/img/blog/es/tutorial/059-zig.jpg)
![Zig online](/img/blog/es/tutorial/017-zig.jpg) Si no puedes ver este boton, asegurate de estar en la primera pestaña:
`std.debug.print` es una invocación que imprime lo que tenga ![Ext](/img/blog/es/tutorial/052-zig.jpg)
dentro. Para poner algo dentro, se utilizan parentesis `()`.
Dentro de los paréntesis va el string que queremos imprimir Aquí seleccionamos la carpeta `tutorial`. Esta es la carpeta que
y una secuencia misteriosa, así: `("Tu mensaje", .{})`. acabamos de crear en el terminal.
Y finalmente, muy importante, todas las invocaciones ![VSCode](/img/blog/es/tutorial/060-zig.jpg)
terminan con un punto y coma `;`. Si la invocación
no termina con su punto y coma tendrás un error misterioso.
Por ejemplo, para imprimir un nuevo texto `Me gusta Zig` Nos saldrá el mensaje de la imagen de abajo. Selecciona "Confiar en
se escribiriá el código así: los autores..." y presiona "Si, confio en los autores".
`std.debug.print("Me gusta Zig", .{});` ![VSCode](/img/blog/es/tutorial/061-zig.jpg)
Podemos tener varias invocaciones a la vez, y ejecutarlas en Ahora veras que en vez del boton "Abrir carpeta" ahora hay una
siempre que la invocación esté bien escrita. serie de archivos.
![Zig online](/img/blog/es/tutorial/018-zig.jpg) ![VSCode](/img/blog/es/tutorial/062-zig.jpg)
Y al ejecutar el programa se imprimiran los mensajes en orden. Este es nuestro proyecto. Aquí es donde estarán todos los archivos
que usaremos.
![Zig online](/img/blog/es/tutorial/019-zig.jpg) - Carpeta `src`: Contiene el código que ejecutaremos
- `build.zig`: Archivo mágico. Es mejor no tocarlo.
- `build.zig.zon`: Archivo mágico. Es mejor no tocarlo.
Haz click en la carpeta `src` y en el archivo `main.zig`:
![VSCode](/img/blog/es/tutorial/063-zig.jpg)
Este es el archivo donde trabajemos por el resto de la serie.
![VSCode](/img/blog/es/tutorial/078-zig.jpg)
Veras que hay un monton de código raro, que aun no sabemos qué
significa. Por ahora lo vamos a dejar así.
## Nuevas lineas ## Ejecutando el proyecto
Notarás que el mensaje se imprimió junto: `Mi primera impresiónMe gusta Zig`. Ahora que instalamos Zig en nuestro computador, tenemos que ejecutar
el programa en nuestro computador. Eso lo haremos desde el terminal.
Este es un buen momento para presentar un concepto muy importante:
la computadora hace lo que le pides, no lo que quieres.
El código que ejecutamos no le pide a la computadora que imprima
una nueva linea `\n`. Así que la computadora no la imprime.
Para tener una nueva linea hay que incluirla en los strings, y con
eso al ejecutar estará cada linea separada:
![Zig online](/img/blog/es/tutorial/020-zig.jpg)
![Zig online](/img/blog/es/tutorial/021-zig.jpg)
Ve al terminal y ejecuta `zig build run`. Veras un monton de texto
raro, pero al final debería quedar así:
## Glosario ![VSCode](/img/blog/es/tutorial/077-zig.jpg)
No es necesario que memorices o entiendas estas palabras.
Y también notarás que aparecieron 2 carpetas nuevas: `.zig-cache`
- String: "cadena de caracteres" y `zig-out`. Ignóralas.
- `const`: abreviatura de "constante", que no cambia
- `std`: abreviatura de "estandar" Has ejecutado el proyecto! Ahora vamos a hacerlo con nuestro propio código.
- `import`: "importar"
- `pub`: abreviatura de "público", que es accesible
- `fn`: abreviatura de "función". en este artículo les llamé ## Reemplazando el código
invocaciones
- `void`: "vacio" En artículos anteriores vimos un programa llamado "Hola mundo":
- `main`: "principal"
- `debug`: el debugging es un proceso mediante el cual ```zig
se eliminan errores (tambien conocidos como "bugs") const std = @import("std");
- `print`: "imprimir"
pub fn main() !void {
std.debug.print("Hola mundo!", .{});
}
```
Ahora vamos a ejecutarlo en nuestro computador, en vez de
la página web.
Entra a `src/main.zig` y reemplaza todo el código que está ahí
por el código de arriba.
> Nota: Puede que notes que las imágenes no sean exáctamente
iguales a como cuando tu escribas el código.
No te preocupes, no es un problema.
Una vez que hayas modificado el código, verás un punto blanco arriba:
![VSCode](/img/blog/es/tutorial/080-zig.jpg)
Esto significa que el archivo está modificado, pero no guardado.
Presiona `Control + S` para guardar el archivo.
Ahora, ejecuta el código: Ve al terminal y ejecuta el comando
`zig build run`:
> Nota: Verás que mi terminal se ve diferente. Pero lo importante
son los comandos, y el resultado.
![VSCode](/img/blog/es/tutorial/081-zig.jpg)
El resultado sale abajo: `Hola mundo!`.
## Siguentes pasos
Ya estamos listos para seguir aprendiendo Zig.
Ahora intenta ejecutar los programas que escribimos
antes en VSCode. Copia y pega el código, o aún mejor,
escríbelo tú mismo.

View File

@ -1,6 +1,6 @@
--- ---
layout: ../../../layouts/BlogLayoutEs.astro layout: ../../../layouts/BlogLayoutEs.astro
title: "Cero a Zig 07: Impresión con formatos" title: "07: Cero a Zig - Impresión con formatos"
description: | description: |
Imprimiendo información adicional. Imprimiendo información adicional.
pubDate: "2024-08-10" pubDate: "2024-08-10"
@ -20,8 +20,8 @@ formatos.
El código para imprimir texto tiene dos partes: El código para imprimir texto tiene dos partes:
```zig ```zig
// --- 1 --- -2- // --- 1 --- -2-
std.debug.print("formato", .{}); std.debug.print("formato", .{});
``` ```
- 1: un formato (string) - 1: un formato (string)
@ -69,7 +69,7 @@ saber que se pueden utilizar.
const std = @import("zig"); const std = @import("zig");
pub fn main() !void { pub fn main() !void {
const nombre = "Juan"; // [!code focus:4] const nombre = "Juan";
const apellido = "Perez"; const apellido = "Perez";
std.debug.print("{s} {s}", .{nombre, apellido}); std.debug.print("{s} {s}", .{nombre, apellido});
// Imprime: `Juan Perez` // Imprime: `Juan Perez`

View File

@ -1,6 +1,6 @@
--- ---
layout: ../../../layouts/BlogLayoutEs.astro layout: ../../../layouts/BlogLayoutEs.astro
title: "Cero a Zig 08: Variables" title: "08: Cero a Zig - Variables"
description: | description: |
Introducción a las variables Introducción a las variables
pubDate: "2024-08-11" pubDate: "2024-08-11"
@ -29,7 +29,7 @@ Digamos que la persona se llama `Juan`. El código es así:
const std = @import("std"); const std = @import("std");
pub fn main() !void { pub fn main() !void {
std.debug.print("Hola {s}\n", .{"Juan"}); // [!code focus:3] std.debug.print("Hola {s}\n", .{"Juan"});
std.debug.print("Tu pedido cuesta {s} dolares\n", .{"20"}); std.debug.print("Tu pedido cuesta {s} dolares\n", .{"20"});
std.debug.print("Adios {s}\n", .{"Juan"}); std.debug.print("Adios {s}\n", .{"Juan"});
} }
@ -47,7 +47,7 @@ Entonces tendríamos que repetirlo 10 veces.
const std = @import("std"); const std = @import("std");
pub fn main() !void { pub fn main() !void {
std.debug.print("Hola {s}\n", .{"Juan"}); // [!code focus:10] 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"});
@ -86,10 +86,10 @@ y a partir de ese momento cada vez que usemos
Por ejemplo: Por ejemplo:
```zig ```zig
const std = @import("std"); // [!code word:nombre] const std = @import("std");
pub fn main() !void { pub fn main() !void {
const nombre = "Juan"; // [!code focus:2] // [!code highlight] const nombre = "Juan";
std.debug.print("Hola {s}\n", .{nombre}); std.debug.print("Hola {s}\n", .{nombre});
} }
``` ```
@ -108,10 +108,10 @@ Podemos utilizar la variable las veces que queramos.
Si imprimimos 10 veces se vería así: Si imprimimos 10 veces se vería así:
```zig ```zig
const std = @import("std"); // [!code word:nombre] const std = @import("std");
pub fn main() !void { pub fn main() !void {
const nombre = "Juan"; // [!code focus:11] 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});
@ -133,10 +133,10 @@ Ahora, si queremos cambiar `Juan` por `Maria`,
solo tenemos que hacerlo en un lugar: solo tenemos que hacerlo en un lugar:
```zig ```zig
const std = @import("std"); // [!code word:nombre] const std = @import("std");
pub fn main() !void { pub fn main() !void {
const nombre = "Maria"; // [!code focus:11] 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});

View File

@ -1,6 +1,6 @@
--- ---
layout: ../../../layouts/BlogLayoutEs.astro layout: ../../../layouts/BlogLayoutEs.astro
title: "Cero a Zig 09: Comentarios y Números" title: "09: Cero a Zig - Comentarios y Números"
description: | description: |
Comentarios, números y operaciones matemáticas Comentarios, números y operaciones matemáticas
pubDate: "2024-08-17" pubDate: "2024-08-17"
@ -31,11 +31,9 @@ y terminan cuando acaba la linea.
```zig ```zig
const std = @import("std"); // Este es un comentario
// Este es un comentario // [!code highlight]
pub fn main() !void { pub fn main() !void {
// Este también es un comentario // [!code highlight] // Este también es un comentario
std.debug.print("Hola", .{}); std.debug.print("Hola", .{});
} }
``` ```
@ -47,23 +45,20 @@ Si quieres un comentario que abarque varias lineas,
cada linea debe iniciar con doble slash: cada linea debe iniciar con doble slash:
```zig ```zig
const std = @import("std");
pub fn main() !void { pub fn main() !void {
// Este es un comentario // [!code highlight:3] // [!code focus:4] // Este es un comentario
// que ocupa 3 lineas // que ocupa 3 lineas
// de texto :D // de texto :D
std.debug.print("Hola", .{}); std.debug.print("Hola", .{});
} }
``` ```
También puedes escribir un comentario al final También puedes escribir un comentario en
de una linea con código, pero no es recomendable. medio de una linea con código, pero no
es recomendable.
```zig ```zig
const std = @import("std"); pub fn main() !void { // Este es un comentario
pub fn main() !void { // Este es un comentario al final
std.debug.print("Hola", .{}); // Este también std.debug.print("Hola", .{}); // Este también
} }
``` ```
@ -89,7 +84,7 @@ es el siguiente:
const std = @import("std"); const std = @import("std");
pub fn main() !void { pub fn main() !void {
std.debug.print("{d}", .{322}); // [!code focus] // [!code highlight] std.debug.print("{d}", .{322});
} }
``` ```
@ -112,7 +107,7 @@ También podemos utilizar números en variables:
const std = @import("std"); const std = @import("std");
pub fn main() !void { pub fn main() !void {
const edad = 32; // [!code focus:3] // [!code highlight] const edad = 32;
// Imprime: `Tengo 32 años` // Imprime: `Tengo 32 años`
std.debug.print("Tengo {d} años", .{edad}); std.debug.print("Tengo {d} años", .{edad});
} }
@ -160,14 +155,14 @@ refiera a los números enteros.
Ahora que sabemos cómo crear números (int), podemos hacer Ahora que sabemos cómo crear números (int), podemos hacer
operaciones con ellos. operaciones con ellos.
Zig ofrece las operaciones que conoces: suma `+`, Zig soporta las operaciones que conoces: suma `+`,
resta `-`, multiplicación `*` y división `/`. resta `-`, multiplicación `*` y división `/`.
```zig ```zig
const std = @import("std"); const std = @import("std");
pub fn main() !void { pub fn main() !void {
const r1 = 9 + 3; // 12 // [!code focus:7] const r1 = 9 + 3; // 12
const r2 = 9 - 3; // 6 const r2 = 9 - 3; // 6
const r1 = 9 * 3; // 27 const r1 = 9 * 3; // 27
const r1 = 9 / 3; // 3 const r1 = 9 / 3; // 3