Skip to content

Commit

Permalink
Merge pull request #78 from pabloblgra/main
Browse files Browse the repository at this point in the history
Refactor typo + consistent
  • Loading branch information
Phosphorus-M authored Jan 11, 2025
2 parents 722a09b + 8999aad commit 8803f11
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 23 deletions.
2 changes: 1 addition & 1 deletion src/ch18-01-all-the-places-for-patterns.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ age` introduce una nueva variable `age` que contiene el valor dentro de la
variante `Ok`. Esto significa que necesitamos colocar la condición `if age > 30`
dentro de ese bloque: no podemos combinar estas dos condiciones en `if let Ok
(age) = age && age > 30`. El `age` sombreado que queremos comparar con 30 no es
válido hasta que comience el nuevo alcance con la llave de apertura.
válido hasta que comience el nuevo scope (ámbito) con la llave de apertura.

La desventaja de usar expresiones `if let` es que el compilador no verifica la
exhaustividad, mientras que con las expresiones `match` sí lo hace. Si
Expand Down
19 changes: 10 additions & 9 deletions src/ch18-03-pattern-syntax.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ particular.
Las variables nombradas son patterns irrefutables que coinciden con cualquier
valor, y las hemos usado muchas veces en el libro. Sin embargo, hay una
complicación cuando usas variables nombradas en expresiones `match`. Debido a
que `match` inicia un nuevo alcance, las variables declaradas como parte de un
que `match` inicia un nuevo scope, las variables declaradas como parte de un
pattern dentro de la expresión `match` ocultarán aquellas con el mismo nombre
fuera del constructo `match`, como es el caso de todas las variables. En el
Listado 18-11, declaramos una variable llamada `x` con el valor `Some(5)` y una
Expand Down Expand Up @@ -131,7 +131,7 @@ podemos desestructurar usando un pattern con una declaración `let`.
<span class="caption">Listing 18-12: Desestructurando los campos de un struct
en variables separadas</span>

Este código crear las variables `a` y `b` que coinciden con los valores de los
Este código crea las variables `a` y `b` que coinciden con los valores de los
campos `x` e `y` del struct `p`. Este ejemplo muestra que los nombres de las
variables en el pattern no tienen que coincidir con los nombres de los campos
del struct. Sin embargo, es común que los nombres de las variables coincidan
Expand Down Expand Up @@ -232,10 +232,11 @@ el número de elementos en la variante que estamos coincidiendo.

#### Desestructurando Structs y Enums Anidados

So far, our examples have all been matching structs or enums one level deep,
but matching can work on nested items too! For example, we can refactor the
code in Listing 18-15 to support RGB and HSV colors in the `ChangeColor`
message, as shown in Listing 18-16.
Hasta ahora, todos nuestros ejemplos han sido de coincidencia (Match) con
structs o enums de un nivel de profundidad, pero el emparejamiento también puede
funcionar en elementos anidados. Por ejemplo, podemos refactorizar el código del
Listado 18-15 para admitir colores RGB y HSV en el mensaje `ChangeColor`, como
se muestra en el Listado 18-16.

```rust
{{#rustdoc_include ../listings/ch18-patterns-and-matching/listing-18-16/src/main.rs}}
Expand Down Expand Up @@ -534,7 +535,7 @@ También puedes usar el operador _or_ `|` en un match guard para especificar
múltiples patterns; la condición del match guard se aplicará a todos los
patterns. El Listado 18-28 muestra la precedencia al combinar un pattern que
usa `|` con un match guard. La parte importante de este ejemplo es que el
match guard `if y` se aplica a `4`, `5` y _6_, aunque podría parecer que `if y`
match guard `if y` se aplica a `4`, `5` y `6`, aunque podría parecer que `if y`
solo se aplica a `6`.

```rust
Expand Down Expand Up @@ -598,8 +599,8 @@ el valor del campo `id` porque no hemos guardado el valor `id` en una variable.

En la última opción, donde hemos especificado una variable sin un rango, sí
tenemos el valor disponible para usar en el código de la opción en una variable
llamada `id`. La razón es que hemos usado la sintaxis de campo de struct
shorthand. Pero no hemos aplicado ninguna prueba al valor en el campo `id` en
llamada `id`. La razón es que hemos usado la sintaxis abreviada del campo del
struct. Pero no hemos aplicado ninguna prueba al valor en el campo `id` en
esta opción, como hicimos con las dos primeras opciones: cualquier valor
coincidiría con este pattern.

Expand Down
18 changes: 9 additions & 9 deletions src/ch19-00-advanced-features.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,23 @@ programación Rust. Antes de hacer otro proyecto en el Capítulo 20, veremos
algunos aspectos del lenguaje que podrías encontrar de vez en cuando, pero
que no usarás todos los días. Puede usar este capítulo como referencia para
cuando encuentre algo desconocido. Las características cubiertas aquí son
útiles en situaciones muy específicas. Aunque es posible que no alcances
a menudo, queremos asegurarnos de que tengas un dominio de todas las
útiles en situaciones muy específicas. Aunque es posible que no las utilices con
frecuencia, queremos asegurarnos de que tengas un dominio de todas las
características que Rust tiene para ofrecer.

En este capítulo, cubriremos:

* Unsafe Rust: cómo optar por algunas de las garantías de Rust y asumir la
responsabilidad de mantener manualmente esas garantías
* Traits avanzados: tipos asociados, parámetros de tipo predeterminados,
- Unsafe Rust: cómo cancelar algunas de las garantías de Rust y asumir la
responsabilidad de mantenerlas manualmente.
- Traits avanzados: tipos asociados, parámetros de tipo predeterminados,
sintaxis completamente calificada, supertraits y el patrón newtype en
relación con los traits
* Tipos avanzados: más sobre el pattern newtype, tipo alias, el tipo never y
- Tipos avanzados: más sobre el pattern newtype, tipo alias, el tipo never y
tipos de tamaño dinámico
* Funciones y closures avanzados: punteros a funciones y devolución de
- Funciones y closures avanzados: punteros a funciones y devolución de
closures
* Macros: formas de definir código que define más código en tiempo de
- Macros: formas de definir código que define más código en tiempo de
compilación

¡Es una panoplia de características de Rust con algo para todos! ¡Vamos a
¡Es una variedad de características de Rust con algo para todos! ¡Vamos a
sumergirnos!
5 changes: 3 additions & 2 deletions src/ch19-05-advanced-functions-and-closures.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
## Funciones y Closures Avanzados

Esta sección cubre algunas características avanzadas relacionadas con
funciones y closures, incluyendo punteros a funciones y retornar closures.
funciones y closures, incluyendo function pointers
(function pointers en español) y retornar closures.

### Function Pointers

Expand Down Expand Up @@ -40,7 +41,7 @@ A diferencia de los closures, `fn` es un tipo en lugar de un trait, por lo que
especificamos `fn` como el tipo de parámetro directamente en lugar de declarar
un parámetro de tipo genérico con uno de los traits `Fn` como un trait bound.

Los punteros a funciones implementan los tres closure traits (`Fn`, `FnMut` y
Los function pointers implementan los tres closure traits (`Fn`, `FnMut` y
`FnOnce`), lo que significa que siempre puedes pasar un puntero a función como
un argumento para una función que espera un closure. Es mejor escribir
funciones usando un tipo generic y uno de los closure traits para que tus
Expand Down
4 changes: 2 additions & 2 deletions src/ch19-06-macros.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ explorado completamente qué es una macro y cómo funciona. El término _macro_
refiere a una familia de características en Rust: macros _declarativas_ con
`macro_rules!` y tres tipos de macros _procedurales_:

- Macros Personalizadas `#[derive]` que especifican código agregado con el
- atributo `derive` usado en structs y enums
- Macros Personalizadas `#[derive]` que especifican código agregado con el
atributo `derive` usado en structs y enums
- Macros similares a atributos que definen atributos personalizados utilizables
en cualquier item
- Macros similares a funciones que se ven como llamadas a funciones, pero
Expand Down

0 comments on commit 8803f11

Please sign in to comment.