54 lines
3.5 KiB
Markdown
54 lines
3.5 KiB
Markdown
# 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](preface.md)
|
|
- Seção anterior: [Conhecimento básico de Go](02.0.md)
|
|
- Próxima seção: [Fundamentos Go](02.2.md)
|