Compare commits
No commits in common. "7768e3c2067ff16ac6beb0f5890c75447b5afc99" and "8e8cb10d3bdc95d78168f5c9d814edb532899536" have entirely different histories.
7768e3c206
...
8e8cb10d3b
@ -1,14 +1,6 @@
|
|||||||
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({
|
||||||
@ -17,17 +9,8 @@ export default defineConfig({
|
|||||||
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,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
BIN
public/img/blog/es/tutorial/007-zig1.jpg
Normal file
BIN
public/img/blog/es/tutorial/007-zig1.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 25 KiB |
@ -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"
|
||||||
|
@ -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.
|
||||||
|
@ -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"
|
||||||
|
@ -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.
|
|
||||||
|
|
||||||
|
@ -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.
|
|
||||||
|
|
||||||
|
@ -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.
|
||||||
|
|
||||||
|
@ -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.
|
||||||
|
|
||||||
|
|
||||||
|
@ -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`
|
||||||
|
@ -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});
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user