Objetivos
Entrada e saída de dados
A forma de interagir com o usuário de nossos programas, é feita por intermédio
das funções/métodos básicos de entrada e saída de dados com as quais podemos
ler dados digitados e exibi-los após algum tipo de processamento. Para isso,
a linguagem Go fornece o package fmt, para nos auxiliar.
Para entender mais sobre funções visite
Funções. Interface em Go pode ser visto
em Interface. Para ver uma pouco mais
sobre formatação, visite Formatação.
A função Println(Print Line) é utilizada para imprimir informações na saída
padrão(stdout) sem a possibilidade de formatação. Além disso, essa função sempre irá
imprimir uma nova linha logo após a impressão do valor informado e também
"espaço em branco", por padrão, entre os dados exibidos.
Sintaxe
func Println(a ...interface{}) (n int, err error)
Onde
n: número de caracteres lidos
err: erro ocorrido durante a leitura
a: recebe todos as variáveis para impressão
Exemplo 1
package main
import "fmt"
func main() {
var vl_float float32 = 1.99
var vl_int int = 777
var vl_char byte = 'Z'
var vl_str string = "string"
fmt.Println(vl_float, vl_int, vl_char, vl_str)
}
Saída
1.99 777 90 string
A função Printf(Print Formatter) permite que possamos utilizar identificadores
de formatação para exibir dados de acordo com os formatos aceitos pela linguagem.
Essa função não imprime uma nova linha após a impressão do argumento informado.
Sintaxe
func Printf(format string, a ...interface{}) (n int, err error)
Onde
n: número de caracteres lidos
err: erro ocorrido durante a leitura
format: string contendo especificador de formatação de tido de dado
a: lista de variáveis para impressão
Exemplo 2
package main
import "fmt"
func main() {
var vl_float float32 = 1.99
var vl_int int = 777
var vl_char byte = 'Z'
var vl_str string = "string"
fmt.Printf("%f %d %c %s", vl_float, vl_int, vl_char, vl_str)
}
Saída
1.990000 777 Z string
No exemplo acima, a formatação de dados utilizou apenas alguns especificadores básicos
de formatação. Aaixo, uma lista mais completa dos especificadores suportados pela linguagem
Go:
Tab. 2: Especificadores de saída
| Especificador |
Tipo de dado |
| %d |
int sinalizado |
| %f |
ponto flutuante |
| %c |
caracter |
| %e |
- |
| %o |
octal |
| %x ou %X |
hexadecimal |
| %t |
booleano |
| %T |
tipo de dado |
| %s |
string |
| %p |
ponteiro |
| %v |
{valores struct} |
| %+v |
{membro: valor} |
| %#v |
representação da struct |
| %#x |
0x + valor hexadecimal |
| #+d |
inteiro com sinal -/+ |
| %q |
valor entre aspas duplas |
Scanf
Para recuperarmos a informação digitada pelo usuário do nosso programa, utilizamos
a função Scanf. Esse método recebe variáveis como argumento e que são
utilizadas para armazenar essas informações.
Sintaxe
func Scanf(format string, a ...interface{}) (n int, err error)
Onde
n: número de caracteres lidos
err: erro ocorrido durante a leitura
format: string contendo especificador de formatação de entrada
a: as variáveis para armazenar os dados lidos
As variáveis utilizadas para armazenar os valores lidos pelo método Scanf devem
ser precedidas do operador (&) que informa que estamos passando uma referência
para o método.
Exemplo 3
package main
import "fmt"
func main() {
var vl_float float32
var vl_int int
var vl_char byte
fmt.Scanf("%f", &vl_float)
fmt.Scanf("%d", &vl_int)
fmt.Scanf("%c", &vl_char)
fmt.Printf("%f %d %c",vl_float,vl_int,vl_char)
}
Entrada
1.99
7777
Z
Saída
1.99
7777
Z
1.99 7777 Z
No exemplo acima, utilizamos alguns especificadores de formatação que podem
ser vistos pelo uso do %. Abaixo uma tabela contendo os especificadores mais
básicos e seus usos.
Tab. 1: Especificadores de entrada
| Especificador |
Tipo de dado |
| %s |
string |
| %d |
int |
| %f |
float |
| %c |
byte |
| %u |
uint |
Histórico de atualizações
- 08/09/2025 - revisão 3 - Ajustes: pontuais, sintaxes e objetivos
- 16/09/2024 - revisão 2 - Ajustes gramaticais; adição de entrada em Ex. 4
- 02/10/2023 - revisão 1 - Correção em referências, erros gramaticais e sintaxe
-
- 21/08/2023 - versão inicial
Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.