O programa “Hello, World!” é um clássico tradicional, consagrado pelo tempo em programação de computadores. É um programa inicial, simples e completo para iniciantes e é uma boa maneira de garantir que seu ambiente esteja devidamente configurado.
Este tutorial explicará sobre como criar esse programa em Go. No entanto, para tornar o programa mais interessante, você vai modificar o programa tradicional “Hello, World!” para que ele pergunte ao usuário pelo seu nome. Então, o nome será utilizado na saudação. Quando terminar com o tutorial, você terá um programa que se parece com este quando executá-lo:
OutputPlease enter your name.
Sammy
Hello, Sammy! I'm Go!
Antes de iniciar este tutorial, você vai precisar de um ambiente local de desenvolvimento em Go configurado em seu computador. Para configurar um ambiente de desenvolvimento local em Go, você pode seguir um destes tutoriais:
Para escrever o programa “Hello, World!” , abra um editor de texto de linha de comando como o nano
e crie um novo arquivo:
- nano hello.go
Assim que o arquivo de texto se abrir na janela do terminal, você digitará o seu programa:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
Vamos desdobrar os diferentes componentes do código.
package
é uma palavra-chave da linguagem Go que define a qual pacote de código esse arquivo pertence. Só pode haver um pacote por pasta e cada arquivo .go
deve declarar o mesmo nome de pacote no topo de seu arquivo. Neste exemplo, o código pertence ao pacote main
.
import
é uma palavra-chave da linguagem Go que diz ao compilador de Go quais outros pacotes você quer usar neste arquivo. Aqui, você importará o pacote fmt
que vem com a biblioteca padrão. O pacote fmt
fornece funções de formatação e impressão que podem ser úteis durante o desenvolvimento.
A fmt.PrintIn
é uma função da linguagem Go, encontrada no pacote fmt
, que diz ao computador para imprimir um texto na tela.
A função fmt.Println
vem seguida por uma sequência de caracteres, como "Hello, World!"
, entre aspas. Quaisquer caracteres que estiverem entre aspas são chamados de string. A função fmt.Println
imprimirá essa string na tela quando o programa for executado.
Salve e saia do nano
, digitando CTRL + X
e, quando for solicitado a salvar o arquivo, pressione Y
.
Agora, você pode testar seu programa.
Com seu programa “Hello, World!” escrito, você está pronto para executar o programa. Você usará o comando go
, seguido do nome do arquivo que você acabou de criar.
- go run hello.go
O programa será executado e exibirá este resultado:
OutputHello, World!
Vamos explorar o que realmente aconteceu.
Os programas em Go precisam compilar antes de serem executados. Quando você chama go run
com o nome de um arquivo, neste caso hello.go
, o comando go
compilará o aplicativo e executará o binário resultante. Para os programas escritos em linguagens de programação compiladas, um compilador receberá o código fonte de um programa e gerará outro tipo de código de nível inferior (como um código de máquina) para produzir um programa executável.
Os aplicativos em Go requerem um pacote main
e exatamente uma função main()
, que serve como ponto de entrada para o aplicativo. A função main
não recebe argumentos e não retorna valores. Em vez disso, ela diz ao compilador de Go que o pacote deve ser compilado como um pacote executável.
Uma vez compilado, o código é executado ao inserirmos a função main()
no pacote main
. Ele executa a linha fmt.Println("Hello, World!")
ao chamar a função fmt.Println
. O valor da string Hello, World!
é enviado, em seguida, para a função. Neste exemplo, a string Hello, World!
é também chamada de um argumento, uma vez que é um valor que é enviado para um método.
As aspas que estão em ambos os lados do Hello, World!
não são impressas na tela porque você as utiliza para dizer ao Go onde sua string começa e onde termina.
Neste passo, você criou um programa funcional “Hello, World!” com o Go. No passo a seguir, você explorará como tornar o programa mais interativo.
Toda vez que você executa seu programa, ele produz o mesmo resultado. Neste passo, você poderá adicionar ao seu programa a solicitação de nome para o usuário. Então, seu nome será utilizado na saída.
Em vez de modificar seu programa já existente, crie um novo programa chamado greeting.go
com o editor nano
:
- nano greeting.go
Primeiro, adicione este código, que solicita que o usuário digite seu nome:
package main
import (
"fmt"
)
func main() {
fmt.Println("Please enter your name.")
}
Novamente, você usa a função fmt.Println
para imprimir algum texto na tela.
Agora, adicione a linha destacada para armazenar a entrada do usuário:
package main
import (
"fmt"
)
func main() {
fmt.Println("Please enter your name.")
var name string
}
A linha var name string
criará uma nova variável usando a palavra-chave var
. Nomeie a variável de name
e ela será do tipo string
.
Então, adicione a linha destacada para capturar a entrada do usuário:
package main
import (
"fmt"
)
func main() {
fmt.Println("Please enter your name.")
var name string
fmt.Scanln(&name)
}
O método fmt.Scanln
diz ao computador para esperar o términdo da entrada do teclado com uma nova linha ou caractere (\n
). Isso pausa o programa, permitindo que o usuário digite qualquer texto que quiser. O programa continuará quando o usuário pressionar a tecla ENTER
em seu teclado. Todos as teclas pressionadas, incluindo a tecla ENTER
, são então capturadas e convertidas em uma string de caracteres.
Você quer usar esses caracteres na saída do seu programa, então salve esses caracteres,* escrevendo*-os na variável string chamada name
. O Go armazena aquela string na memória do seu computador até que o programa termine de executar.
Por fim, adicione a seguinte linha destacada em seu programa para que imprima o resultado:
package main
import (
"fmt"
)
func main() {
fmt.Println("Please enter your name.")
var name string
fmt.Scanln(&name)
fmt.Printf("Hi, %s! I'm Go!", name)
}
Desta vez, em vez de usar o método fmt.Println
novamente, você estará usando o fmt.Printf
. A função fmt.Printf
recebe uma string e, fazendo uso de verbos especiais de impressão, (%s
), ela injeta o valor de name
na string. Faça isso porque o Go não oferece suporte à interpolação de strings, o que deixaria que você levasse o valor atribuído até uma variável e o colocasse dentro de uma string.
Salve e saia do nano
, pressionando CTRL + X
e pressione Y
quando solicitado a salvar o arquivo.
Agora, execute o programa. Você será solicitado a colocar seu nome; assim, digite-o e pressione ENTER
. O resultado pode não ser exatamente o que você espera:
OutputPlease enter your name.
Sammy
Hi, Sammy
! I'm Go!
Em vez de Hi, Sammy! I'm Go!
, há uma linha de quebra logo após o nome.
O programa capturou todas as teclas que pressionamos, incluindo a tecla ENTER
que pressionamos para dizer ao programa para continuar. Em uma string, pressionar a tecla ENTER
cria um caractere especial que cria uma nova linha. O resultado do programa está fazendo exatamente o que lhe foi solicitado; está exibindo o texto que você digitou, incluindo essa nova linha. Não é o resultado que você esperava ver, mas você pode corrigi-lo com funções adicionais.
Abra o arquivo greeting.go
no seu editor:
- nano greeting.go
Localize esta linha em seu programa:
...
fmt.Scanln(&name)
...
Adicione a linha a seguir logo após a linha anterior:
name = strings.TrimSpace(name)
Esse arquivo utiliza a função TrimSpace
- do pacote de strings
da biblioteca padrão de Go - na string que você capturou com a fmt.Scanln
. A função strings.TrimSpace
remove todos os caracteres de espaço, incluindo novas linhas - do início e do final de uma string. Neste caso, ela remove o caractere da nova linha ao final da string criada quando o ENTER
tiver sido pressionado.
Para usar o pacote strings
, você precisa importá-lo no topo do programa.
Localize estas linhas em seu programa:
import (
"fmt"
)
Adicione a seguinte linha para importar o pacote strings
:
import (
"fmt"
"strings"
)
Seu programa agora terá o seguinte:
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println("Please enter your name.")
var name string
fmt.Scanln(&name)
fmt.Printf("Hi, %s! I'm Go!", name)
name = strings.TrimSpace(name)
}
Salve e saia do nano
. Pressione CTRL + X
e, em seguida, pressione Y
quando for solicitado a salvar o arquivo.
Execute o programa novamente:
- go run greeting.go
Desta vez, após digitar seu nome e pressionar ENTER
, você receberá o resultado esperado:
OutputPlease enter your name.
Sammy
Hi, Sammy! I'm Go!
Agora, você tem um programa Go que recebe a entrada de um usuário e a imprime de volta na tela.
Neste tutorial, você escreveu um programa “Hello, World!” que recebe a entrada de um usuário, processa os resultados e exibe o resultado. Agora que você tem um programa básico com o qual trabalhar, tente expandi-lo ainda mais. Por exemplo, pergunte a cor favorita do usuário e faça o programa dizer que sua cor favorita é vermelho. Você pode até tentar usar essa mesma técnica para criar um programa Mad-Lib simples.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Sign up for Infrastructure as a Newsletter.
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.