2.1 Hello, Go
Antes de iniciar a construção de aplicações completas em Go, nós precisamos aprender a escrever um programa simples, afinal, você não pode construir um prédio sem antes construir sua fundação. Sendo assim, vamos aprender a sintaxe básica para executar alguns programas simples nessa seção.
Programa
Seguindo a reconhecida prática internacional, antes de aprender como programar em qualquer linguagem, você precisa saber como escrever um programa que imprime a famosa frase "Hello world".
Pronto pra esse primeiro desafio? Vamos lá!
package main
import "fmt"
func main() {
fmt.Printf("Hello, world or 你好,世界 or καλημ ́ρα κóσμ or こんにちは世界\n")
}
Isto irá imprimir a seguinte informação.
Hello, world or 你好,世界 or καλημ ́ρα κóσμ or こんにちは世界
Explicação
Uma coisa que você precisa entender em primeiro lugar é que os programas Go são compostos de pacotes (identificados pela palavra-chave package
).
package <pkgName>
define o nome do pacote, no nosso exemplo temos package main
que identifica que esse código pertence ao pacote main
e a palavra main
indica que esse pacote será compilado em um programa ao invés de um pacote com extensão .a
.
Todo programa executável possui um, e somente um, pacote main
e este último precisa conter uma função nomeada como main
sem nenhum argumento ou valores de retorno.
Para exibir a mensagem Hello, world…
, foi utilizada uma função chamada Printf
. Esta função faz parte do pacote fmt
, então nós importamos esse pacote na terceira linha do código usando a instrução import "fmt"
.
A maneira de pensar nos pacotes em Go é similar a linguagem Python, e traz a seguintes vantagens: Modularidade (quebrar seu programa em vários módulos) e Reusabilidade (todos os módulos podem ser usados em diferentes lugares). Estes são os principais tópicos que precisamos falar sobre pacotes, e nós vamos fazer os nossos próprios pacotes mais tarde.
Na quinta linha, nós usamos a palavra func
para definir a função main
e o corpo da função está dentro de chaves({}
), da mesma forma que é feito em C, C++ e Java.
Como você pode notar, não temos argumentos. Nós iremos ver como escrever funções com argumentos em breve, assim como funções que possuem zero, um ou vários valores de retorno também.
Na sexta linha, chamamos a função Printf
que vem do pacote fmt
. Este tipo de função é invocada pela sintaxe <pkgName>.<funcName>
, que é muito parecido com o estilo Python.
Como mencionado no Capítulo 1, o nome do pacote e o nome da pasta que o contém podem ser diferentes. O nome do pacote vem do <pkgName>
em package <pkgName>
, não do nome da pasta.
Finalmente, você pode notar que o exemplo acima contém vários caracteres não-ASCII (que não estão na tabela ASCII). O objetivo é demonstrar que a linguagem Go tem suporte nativo a UTF-8. Você pode usar qualquer caracter UTF-8 em seus programas.
Conclusão
Go usa pacotes (semelhantes aos módulos em Python) para organizar os programas. A função main.main()
(função que precisa estar no pacote main
) é o ponto de entrada para todos os programas. Go suporta UTF-8 de forma nativa, pois um dos criadores da linguagem é também o criador do UTF-8, logo Go possui suporte para vários idiomas (mult-lang) por padrão.
Links
- Sumário
- Seção anterior: Conhecimento básico de Go
- Próxima seção: Fundamentos Go