Compare commits

..

No commits in common. "5f2912f76a7e813942d32b480b9bb86f3c402529" and "7768e3c2067ff16ac6beb0f5890c75447b5afc99" have entirely different histories.

23 changed files with 118 additions and 144 deletions

View File

@ -16,7 +16,7 @@ export default defineConfig({
markdown: { markdown: {
shikiConfig: { shikiConfig: {
themes: { themes: {
light: "light-plus", light: "catppuccin-latte",
dark: "dark-plus" dark: "dark-plus"
}, },
transformers: [ transformers: [

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -13,148 +13,159 @@ image:
En el artículo anterior escribimos nuestro primer programa: En el artículo anterior escribimos nuestro primer programa:
Hola mundo. En este artículos vamos a modificar el mensaje Hola mundo. En este artículos vamos a modificar el mensaje
y aprender un primer concepto llamado Strings. y aprender el primer concepto: Strings
Como siempre, vamos a trabajar en el archivo `src/main.zig`
del proyecto que creamos anteriormente.
## Hola mundo modificado
En el programa que escribimos hay un monton de palabras,
y seguramente no las entiendas. Ahora mismo, lo que vamos a
hacer es modificar el texto que aparece.
Primero, observemos el código:
![Codigo](/img/blog/es/tutorial/1x/014.jpg)
Lo que nos importa ahora mismo es la frase `Hola mundo`.
Hay algunas particularidades:
- La frase tiene un color rojizo, mientras que
otras palabras tienen otros colores
- La frase inicia con una comilla doble `"`,
y acaba con otra.
- Hay dos caracteres: `\` y `n` que no aparecen
al ejecutar el programa.
Toda la frase es algo llamado un string. Un string
es una secuencia de letras (caracteres) que unidas
forman un texto.
Los strings se utilizan para representar texto.
Ahora lo vas a modificar.
En el código, reemplaza `Hola` por `Adios`, y
ejecuta el programa. Veras que ahora el mensaje
que sale es `Adios mundo!`
```zig
const std = @import("std");
pub fn main() !void {
std.debug.print("Adios mundo!\n", .{}); // [!code focus]
}
```
![Codigo](/img/blog/es/tutorial/1x/015.jpg)
## Modificando "Hola mundo"
## Strings Entra a la página web
[https://zig.fly.dev/p/xNluereqmgW](https://zig.fly.dev/p/xNluereqmgW),
donde se encuentra el programa "Hola mundo". Esta vez vamos a modificar
el mensaje.
Los strings tienen algunas reglas: El resto de las palabras son magia negra. Te habras dado cuenta que
hay palabras en español: Hola y mundo.
Para que sea fácil diferenciarlos, los strings ![Zig online](/img/blog/es/tutorial/009-zig.jpg)
automáticamente se marcan de color rojizo.
Un string siempre inicia con una comilla doble `"`, Hay varias cosas que notar:
y termina con otra. Las comillas marcan el inicio
y fin del string.
Si colocas una comilla dentro de un string, lo que - Estan pintadas de color amarillo
pasará es que el string terminará antes. Eso lo podrás - Tienen comillas dobles `"` al inicio y al final
ver por el color:
![Codigo](/img/blog/es/tutorial/1x/016.jpg) Dentro de estas comillas `"` podemos escribir el texto que querramos.
En la imagen superior puedes notar que `Juan` está Por ejemplo, si reemplazas `Hola` por `Adios` y ejecutas el programa,
de color azúl, no rojo. 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)
Dentro de un string puede ir (casi) cualquier texto, ## Strings / cadenas de caracteres
con tal que esté dentro de la misma linea. Si
la linea termina antes que el string, tendrás un error.
![Codigo](/img/blog/es/tutorial/1x/017.jpg) Los strings (cadenas de caracteres en inglés) son la forma
en la que almacenamos texto.
Si quieres un texto con una linea nueva se utiliza Un string empieza con una comilla doble `"`, el contenido
una combinación especial de caracteres: `\n`. del string, y termina con una comilla doble `"`.
Estos 2 caracteres cuando estan juntos se traducen
a una nueva linea:
Unos ejemplos de strings son: `"hola"`, `"adios"`,
`"multiples palabras"`, `"123456"`.
```zig En el programa de arriba hay 2 strings:
const std = @import("std");
pub fn main() !void { ![Zig online](/img/blog/es/tutorial/013-zig.jpg)
std.debug.print("En la calle hay\nuna moto y un auto", .{}); // [!code focus]
}
```
![Codigo](/img/blog/es/tutorial/1x/018.jpg) Estos strings son lo que se muestra en pantalla al
ejecutar el programa.
Los strings tienen algunas características:
- 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.
El string termina cuando aparece la primera comilla.
Por ejemplo:
![Zig online](/img/blog/es/tutorial/014-zig.jpg)
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.
- No puede haber nuevas lineas en un string. Esto es un error:
![Zig online](/img/blog/es/tutorial/015-zig.jpg)
Sin embargo, hay ocasiones donde queremos tener varias lineas
en un string. Para esto se utilizan 2 caracteres especiales:
`\n`. Estos nos permiten "señalar" que ahí va una linea nueva.
![Zig online](/img/blog/es/tutorial/016-zig.jpg)
Estos caracteres especiales se conocen como "caracteres de escape".
Hay varios de ellos, pero no los veremos por ahora.
Esto último es llamado un "caracter de escape". Hay varios
de ellos, pero los veremos más adelante.
## Impresión ## Impresión
Imprimir es que nuestro programa muestre un texto en pantalla. Imprimir es mostrar información a través de la pantalla. Esta
Todas las veces que hemos ejecutado nuestro programa, y información puede ser palabras, letras, números, símbolos, etc.
aparecío un texto, hemos estado imprimiendo.
Zig tiene una instrucción para imprimir texto: `std.debug.print`, que hemos estado utilizando. Para imprimir en Zig se escribe lo siguiente:
Esta instrucción tiene 3 partes: ![Zig online](/img/blog/es/tutorial/017-zig.jpg)
- 1: La instrucción en sí `std.debug.print` es una invocación que imprime lo que tenga
- 2: El texto (string) a imprimir dentro. Para poner algo dentro, se utilizan parentesis `()`.
- 3: Un dato adicional misterioso
![Codigo](/img/blog/es/tutorial/1x/019.jpg) Dentro de los paréntesis va el string que queremos imprimir
y una secuencia misteriosa, así: `("Tu mensaje", .{})`.
Dentro del string (2) podemos poner lo que querramos. Y finalmente, muy importante, todas las invocaciones
Pero el resto tiene que estar igual, los parentesis, terminan con un punto y coma `;`. Si la invocación
comas, llaves y punto y coma. no termina con su punto y coma tendrás un error misterioso.
Adicionalmente, todas las instrucciones terminan Por ejemplo, para imprimir un nuevo texto `Me gusta Zig`
con un punto y coma `;`. Este señala que la instrucción se escribiriá el código así:
terminó, y esta lista para ejecutarse.
En nuestro programa podemos tener varias intrucciones, `std.debug.print("Me gusta Zig", .{});`
cada una imprimiendo algo nuevo:
```zig Podemos tener varias invocaciones a la vez, y ejecutarlas en
const std = @import("std"); siempre que la invocación esté bien escrita.
pub fn main() !void { ![Zig online](/img/blog/es/tutorial/018-zig.jpg)
std.debug.print("Hola\n", .{}); // [!code focus:3]
std.debug.print("Soy fernando\n", .{});
std.debug.print("Adios\n", .{});
}
```
![Codigo](/img/blog/es/tutorial/1x/020.jpg) Y al ejecutar el programa se imprimiran los mensajes en orden.
Cada instrucción se coloca en una linea nueva. ![Zig online](/img/blog/es/tutorial/019-zig.jpg)
## Siguiente ## Nuevas lineas
En el siguiente artículo continuaremos trabajando Notarás que el mensaje se imprimió junto: `Mi primera impresiónMe gusta Zig`.
con impresiones, y aprenderemos qué es ese dato
adicional misterioso. 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)
## 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"

View File

@ -189,41 +189,4 @@ agruparlas con paréntesis.
## Números racionales (float) ## Números racionales (float)
Hemos visto números enteros, pero también podemos
utilizar números reales. Estos se llaman `float`
y vienen del ingles
["floating point number"](https://es.wikipedia.org/wiki/Coma_flotante).
La mayor diferencia es que los `float` permiten usar
decimales, mientras que los `int` no.
Para imprimir un float tambien se usa el formato `{d}`.
```zig
const std = @import("std");
pub fn main() !void {
const ratio_de_cambio = 1.1005; // [!code focus:2]
std.debug.print("El ratio es {d}", .{ratio_de_cambio});
}
```
También puedes utilizar las operaciones matemáticas con
los `float`.
```zig
const std = @import("std");
pub fn main() !void {
const r1 = 4.5 + 3.2; // [!code focus:5]
const r2 = 3.3 - 1.1;
const r3 = -55 * 0.2;
const r4 = 33.33 / 3.3;
std.debug.print("{d} {d} {d} {d}", .{r1, r2, r3, r4});
}
```