diff --git a/src/ch10-00-generics.md b/src/ch10-00-generics.md
index 1c32ea0aa4..70584573cf 100644
--- a/src/ch10-00-generics.md
+++ b/src/ch10-00-generics.md
@@ -42,7 +42,7 @@ mecânicas com tipos genéricos para extrair uma função genérica! Do mesmo mo
que você reconhece código duplicado para extrair para uma função, você começará
a reconhecer código duplicado que pode usar tipos genéricos.
-Considere um pequeno programa que acha o maior número em uma lsita, mostrado
+Considere um pequeno programa que acha o maior número em uma lista, mostrado
na Listagem 10-1:
Nome do arquivo: src/main.rs
@@ -157,7 +157,7 @@ fn main() {
```
Listagem 10-3: Código abstraído para encontrar o maior
-numḿero em duas listas
+número em duas listas
A função tem o parâmetro, `list`, que representa qualquer corte concreto de
valores `i32` que podemos passar para uma função. O código na definição da
diff --git a/src/ch10-01-syntax.md b/src/ch10-01-syntax.md
index 7d6243f2e0..cdda3b24fe 100644
--- a/src/ch10-01-syntax.md
+++ b/src/ch10-01-syntax.md
@@ -153,7 +153,7 @@ tenha um trait em particular na próxima sessão, mas vamos deixar isso de lado
por um momento e explorar outros lugares que podemos usar parâmetros de tipos
genéricos primeiro.
-### Usando Tipos de Dados Genéros em Definições de Structs
+### Usando Tipos de Dados Genéricos em Definições de Structs
Nós podemos definir structs para usar um parâmetro de tipo genérico em um ou
mais campos de um struct com a sintaxe `<>` também. A listagem 10-6 mostra a
diff --git a/src/ch10-03-lifetime-syntax.md b/src/ch10-03-lifetime-syntax.md
index ee1101dc53..6b64e912e6 100644
--- a/src/ch10-03-lifetime-syntax.md
+++ b/src/ch10-03-lifetime-syntax.md
@@ -49,7 +49,7 @@ valor saiu de escopo
> #### Variáveis Não Inicializadas Não Podem Ser Usadas
>
-> Os próximos exemplos declaram vaŕiáveis sem darem a elas um valor inicial,
+> Os próximos exemplos declaram variáveis sem darem a elas um valor inicial,
> então o nome da variável existe no escopo exterior. Isso pode parecer um
> conflito com Rust não ter null. No entanto, se tentarmos usar uma variável
> antes de atribuir um valor a ela, nós teremos um erro em tempo de compilação.
@@ -137,7 +137,7 @@ concreto e discutimos como Rust analisa tempos de vida para garantir que
referências sempre serão válidas, vamos falar sobre tempos de vidas genéricos
de parâmetros e retornar valores no contexto das funções.
-### Tempos de Vida Génericos em Funções
+### Tempos de Vida Genéricos em Funções
Vamos escrever uma função que retornará a mais longa de dois cortes de string.
Nós queremos ser capazes de chamar essa função passando para ela dois cortes
@@ -164,7 +164,7 @@ Note que queremos que a função pegue cortes de string (que são referências,
como falamos no Capítulo 4) já que não queremos que a função `maior` tome posse
de seus argumentos. Nós queremos que uma função seja capaz de aceitar cortes de
uma `String` (que é o tipo de variável `string1`) assim como literais de string
-(que é o que a variável `strin2` contém).
+(que é o que a variável `string2` contém).
Recorra à seção do Capítulo 4 "Cortes de Strings como Parâmetros" para mais
discussões sobre porque esses são os argumentos que queremos.
@@ -258,7 +258,7 @@ genérico.
Vamos olhar para anotações de tempo de vida no contexto da função `maior` que
estamos trabalhando. Assim como parâmetros de tipos genéricos, parâmetros de
tempos de vida genéricos precisam ser declarados dentro de colchetes angulares
-entre o nome da função e a lista de parâmetros. A limitanção que queremos
+entre o nome da função e a lista de parâmetros. A limitação que queremos
dar ao Rust é que para as referências nos parâmetros e o valor de retorno devem
ter o mesmo tempo de vida, o qual nomearemos `'a` e adicionaremos para cada uma
das referências como mostrado na Listagem 10-23:
@@ -375,7 +375,7 @@ Se tentarmos compilar isso, receberemos esse erro:
```text
error: `string2` does not live long enough
|
-6 | resultadod = longest(string1.as_str(), string2.as_str());
+6 | resultado = longest(string1.as_str(), string2.as_str());
| ------- borrow occurs here
7 | }
| ^ `string2` dropped here while still borrowed
@@ -407,7 +407,7 @@ ver se você está certo!
### Pensando em Termos de Tempos de Vida
O modo exato de especificar parâmetros de tempos de vida depende do que sua
-função está fazendo. Por exemplo, se mudaramos a implementação da função
+função está fazendo. Por exemplo, se mudarmos a implementação da função
`maior` para sempre retornar o primeiro argumento ao invés do corte de string
mais longo, não precisaríamos especificar um tempo de vida no parâmetro `y`.
Este código compila: