Um momento
Aula 38
Cursos / Aprenda Go / Golang (Curso de Programação)
Percorrendo uma Matrix de Pedaços na Linguagem Go (Array de Duas Dimensões)

Summary

# Resumo da Aula sobre Slice de Slice em Go

## Introdução
- A aula aborda matrizes ou arrays de duas dimensões, focando em slices de slices.
- Um exemplo prático usado é um tabuleiro para o jogo da velha.

## Iterando sobre o Tabuleiro
- O objetivo é percorrer o tabuleiro para realizar operações nas linhas.
- A implementação utiliza um loop `for` que vai de `0` até `2`, ou seja, o comprimento do tabuleiro.

### Estrutura do Loop `for`
1. **Iniciação**: A variável `i` inicia em `0`.
2. **Condição**: O loop continua enquanto `i` for menor que o comprimento do tabuleiro.
3. **Incrementação**: `i` é incrementado em `1` após cada iteração.

### Corpo do Loop
- Imprimir cada linha do tabuleiro usando `fmt.Println`.
- Para obter a linha específica, utiliza-se `tabuleiro[i]`.

## Usando `strings.Join`
- Caso se deseje combinar os elementos de uma linha em uma única string, pode-se usar a função `strings.Join()`.
- **Formato**: 
  ```go
  strings.Join(tabuleiro[i], " ")
  • Join permite especificar um delimitador (exemplo: espaço ou vírgula).

Saída e Impressão

  • Para exibir a string, usa-se printf com o formato %s, seguido de \n para uma nova linha.
  • Importante garantir que o pacote strings esteja importado corretamente.

Conclusão

  • A aula ensinou como percorrer e manipular slices de slices em Go, utilizando loops e funções de strings.
  • Reforçou a sintaxe do printf e a importância do delimitador na formatação da saída.

Principais Aprendizados

  • Loop for para iteração.
  • Uso da função strings.Join para combinar strings.
  • Sintaxe de formatação com printf e quebras de linha.

Video Transcript

Olá pessoal, estamos de volta, vamos continuar a falar de pedaços de pedaços, slice de slice. Isto é matrizes ou arrays de duas dimensões. Então a gente aprendeu como declarar e definir um slice de slice, nesse caso a gente fez um tabuleiro para o jogo da velha. Agora eu gostaria de apresentar uma maneira de você percorrer esse tabuleiro para fazer qualquer coisa com as linhas. Nesse caso a gente só vai imprimir cada linha, mas você pode fazer o que quiser ao percorrer esse tabuleiro. Então vamos lá, deixa eu só limpar aqui o meu terminal. Então aqui no arquivo slice de slice, deixa eu fazer aqui o negócio. Então vou fazer o seguinte, como é que a gente percorre para ir por cada linha nesse tabuleiro? Se lembra de como a gente cria loops, para estruturas de repetição. Então a gente pode usar um loop aqui, por exemplo, loop de para, for, com aqueles três partes separados por um ponto em vírgula. Então a gente pode fazer isso e percorrer cada elemento do tabuleiro. Nesses casos a gente pode partir de cima, aí começa lá e percorre cada linha. Então vou fazer o for, inicia a variável de repetição, por exemplo, i e de zero até 2. 2 vai ser o length, o comprimento do tabuleiro, que na verdade é um pedaço de pedaços, mas quando você fala do tabuleiro, você está pegando esse cara aqui, que tem três elementos. Então o comprimento do tabuleiro é três elementos, não importa que eles sejam, pedaços, cada elemento, você pensa nisso como se tivesse um ABC aqui, você vê que tem um, dois, três elementos, não importa se seja pedaços de string. Então vamos lá aqui, vou tirar esse fmt daqui. Então você pode fazer o seguinte, vamos fazer um for, como é que faz o for? Se lembra? Então tem três partes, a primeira parte é a iniciação, com a variável de repetição, vamos botar i, e vou iniciar com o valor zero. Agora, qual é a condição para executar essa repetição? Vamos continuar executando, enquanto a variável i, o índice for menor que o número de elementos do tabuleiro, por isso ele vai repetir para zero, para um e para dois, como o comprimento é três, dois menor que três, verdade para o último, mas quando bate em três, quando o i for incrementado e o seu valor se tornar três, três menor que três, a falsa vai terminar o loop. Então a condição vai ser o i menor que o número de elementos do tabuleiro, mas como é que pega o número de elementos? Você pode chamar a função l, e, n, que significa length, o comprimento em inglês, length. Então length do tabuleiro, só do tabuleiro, vai dar três, no caso, e a última parte do for loop é a incrementação, no nosso caso, do i mais mais, e mais mais vai aumentar o valor de i para, de um, vai aumentar um a mais. Agora, qual é o corpo aqui do loop? Vamos só fazer o seguinte, vamos só imprimir a linha. Tá? Mas a gente já tinha feito, vou ver aqui, slices de slices, tudo bom? A gente já tinha feito um fmt anteriormente, dos slices de slices, deixa eu pôr aqui, a gente já lendo o tabuleiro, a gente já tinha feito, a gente já lendo o tabuleiro, e eu imprimi tudo em uma linha só, agora a gente vai fazer o seguinte, vai para correr cada linha, e eu quero que você, que faça uma quebra de linha para cada impressão de linha, tá? Então, em vez de ser tudo em uma linha só, vai ser uma linha por linha, por linha do terminal, como fazer isso? Então, você pode fazer aqui, vou dar o fmt aqui, println, obviamente você pode fazer tabuleiro, mas qual é o elemento tabuleiro, qual é a linha? A linha no coxete I, se você pegar a coxete I, vai pegar, por exemplo, vai começar a zero, vai pegar esse cara, vou 1, vai pegar esse cara, vou 2, vai pegar esse cara, e o println, já sabe, é imprimir esse cara aqui, tá? Legal, mas vamos supor, tá, vamos supor que, eu quero que você faça isso, sem ter ajuda do println, tá? Vamos supor que você não tenha acesso ao println, e não tem como você adicionar a quebra de linha no final, e não tem como você pegar e combinar o cara elemento dessa linha, e uma só string, se você não tem acesso a isso, você pode fazer dessa maneira aqui, olha aqui, você pode usar a função chamada join, que está dentro do pacote, strings, tá? Os notos que a gente tem, por exemplo, esse cara aqui, tem três elementos, agora, você quer mostrar o quê? Você quer mostrar uma só string, combinando o primeiro elemento, combinando o segundo, combinando o terceiro, e uma só string, note que está dentro das mesmas, do mesmo pad desses caras aqui, diáspas, né? Como fazer isso? Então, você pode usar strings.join, tá? Deixa eu falar mais aqui. Então, tem um pacote chamado strings, dentro desse pacote tem a função chamada join, tá? Se você tiver, por exemplo, um pedaço de string, que tiver bola x em traço, deixa eu voltar para go. Deixa eu se de que está aqui, pronto. Se você tiver isso, esse cara aqui, vamos chamar de vinha. Pra você combinar cada elemento dessa, desse slice em uma só string separada por um delimitador, por exemplo, a vírgula ou o espaço, você pode usar strings.join, primeiro argumento vai ser a variável que tem ali, que tem o vetor, seguido do delimitador, nesse caso, por exemplo, vírgula. O que é que esse iria produzir? Esse cara iria produzir o seguinte, ele iria pegar esse cara, ir lá pegar o primeiro elemento, eu estava aqui, adicionava a vírgula, pegava o segundo elemento, adicionava a vírgula, e finalmente, por último momento, só adicionar 100 vírgula, tá? Então, ele produziria essa saída aqui, quando você faz strings.join, vinha vírgula. Se fosse espaço aqui, do delimitador, a vírgula se tornaria espaço. Então, vamos fazer isso, voltando aqui ao nosso arquivo, vamos lá. Você não tem mais acesso a FMT, a gente tem que fazer de outra maneira. Vamos supor que você tenha acesso ao printf, printf, tá? Agora, você quer mostrar um string, vamos escrever essa parte já, já, vamos fazer o strings.join, strings.join, o quê? Então, vai ser tabuleiro, como é que acessa a linha? Tabuleiro vai te dar uma lista, um vetor de três elementos, mas eu quero só uma linha específica, usando a variável de interação I. Então, vai ser tabuleiro, coxete I, essa vai me dar a linha, vírgula, qual é o delimitador? Você pode usar vírgula, ou pode usar espaço, qualquer em que você quiser que apareça. Vou usar espaço, tá? Legal. Agora, esse cara vai gerar, esse cara combinado, esses elementos serão combinados em uma só string separada, o cara vai no momento separado por um espaço. Legal, mas agora a gente tem que lidar com a parte do printf aqui. Printf, se você quiser mostrar um string, você põe percentual por cento, s, tá? Agora, se você quiser quebrar a linha, você põe barra n, tá? Então, percentual vai confundir essa variável aqui, o valor dela vai ser substituído aqui, seguido de uma quebra de linha, tá? Para o próximo printf, que é o Ccf, aparecerá uma nova linha. Agora, antes da gente compilar e rodar, a string é um pacote, tá? Que a gente tem que importar lá em cima. A gente já importou fmt, agora vai importar strings. Então, lá em cima, no import, você pode botar aqui strings, tá? Nem se precisa de vírgula aqui, vamos ver se precisa ou não. Lá, go, run, slice, dslice.go. Tá, não precisa de vírgula, tá? Então, gerou o... a saída que a gente esperava. Norte, que não tem mais aqueles coxetes, porque o println que adicionava o coxete, mas a gente fez da nossa maneira, usando strings.join, a gente gerou essa string individual, contendo todos os elementos de cada linha, separado por um delimitador, nesse caso, o espaço, tá? Então, apareceram aqui. Então, vamos revisar o que aprendemos. Aprendemos a percorrer um pedaço de pedaços, usando um loop de para, for. Fizemos a iniciação do variável de repetição i, começando do zero, condição que seja menor que o comprimento do tabuleiro, e depois de executar o corpo, vai incrementar um i. No corpo, a gente dá o printf, a variável, a gente mostra o valor da linha, dos elementos da linha, combinados em uma só string, separados por um delimitador, espaço vazio. Aprendemos sobre pacotes strings, tem a função join que nos permite fazer aí essa operação. Lembre-se de que o %s corresponde a uma string que você ia mostrar no printf. barra n é uma nova linha, quebra de linha, tá? Então, para a sala só e até a próxima.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: