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.
O assunto interface em Go pode ser visto em em Interface.
Para ver uma pouco mais sobre formatação, visite Interpolação.
A função Println(Print Line) é utilizada para imprimir informações na saída padrão(tela) 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 impressos.
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 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.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 3
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.
Abaixo, 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 4
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
- 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.