Nesta lição sobre o pacote Scanner em Golang, estudaremos vários exemplos de como usar Scanners de várias maneiras na linguagem de programação Go. Vamos começar agora.
Começando com Go
Apenas para ter certeza de que temos o ambiente configurado de forma consistente, aqui está a estrutura de diretório que criei para o meu programa Hello World:
Aqui está o programa que criamos:
pacote principalimportar "fmt"
func main ()
fmt.Printf ("Olá, mundo.\ n ")
Podemos executar o programa acima com o seguinte comando:
vai correr olá.vaiDepois de executar este comando, aqui está a saída que você verá:
Agora isso parece bom. Vamos passar para a nossa agenda principal.
Scanner e Pacote Bufio em Golang
Neste post, veremos os pacotes de bufio e scanner.
Começaremos com um exemplo muito simples para dividir Strings em várias palavras. Vejamos o seguinte exemplo:
pacote principalimportar (
"bufio"
"fmt"
"cordas"
)
func main ()
inputStr: = "golang shubham linux"
scanner: = bufio.NewScanner (strings.NewReader (inputStr))
scanner.Split (bufio.ScanWords)
para scanner.Varredura()
fmt.Println (scanner.Texto())
O resultado deste programa será:
GolangShubham
linux
Aqui, o Scanner usou a saída de entrada em buffer lendo a entrada fornecida como um fluxo.
Lendo um arquivo
Agora, vamos tentar ler um arquivo em Go, usando bufio para ler um arquivo linha por linha. Para fazer isso, primeiro criamos um arquivo de amostra no mesmo diretório de nosso programa Go. Aqui está nosso arquivo:
Em seguida, escrevemos nosso programa para ler esse arquivo linha por linha:
pacote principalimportar (
"bufio"
"fmt"
"registro"
"os"
)
func main ()
fileToRead, erro: = os.Abrir("./Olá.TXT")
se erro != nil
registro.Erro fatal)
adiar fileToRead.Perto()
scanner: = bufio.NewScanner (fileToRead)
para scanner.Varredura()
fmt.Println (scanner.Texto())
se erro: = scanner.Errar(); erro != nil
registro.Erro fatal)
Assim que executarmos este programa, aqui está a saída que obteremos
Recebendo a entrada do usuário com bufio
Esta é a operação mais útil a ser realizada quando um usuário está começando com a linguagem Golang.
Podemos receber uma entrada do usuário como:
pacote principalimportar (
"bufio"
"fmt"
"os"
)
func main ()
leitor: = bufio.NewReader (os.Stdin)
fmt.Imprimir ("Digite o texto:")
texto, _: = leitor.ReadString ('\ n')
fmt.Println (texto)
Vamos executar este programa agora:
Apenas para observar, há outra maneira de receber entrada se você está OK, NÃO aceitando um espaço em branco nela:
pacote principalimportar "fmt"
var string de entrada
func main ()
fmt.Imprimir ("Digite seu nome =")
fmt.Scanf ("% s", & entrada)
fmt.Println ("Olá" + entrada)
Vamos executar este programa agora:
Conclusão
Para estudar, o pacote Scanner e Bufio em Go é muito útil e nunca é possível obter o suficiente. Leia mais exemplos do pacote e tente o máximo possível por conta própria.