Com os identificadores de formatação ou flags de formatação podemos exibir nossas informações de acordo com seus tipos.
Tab. 1: Especificadores de formatação
| Especificador |
Tipo de dado |
| %d |
int sinalizado |
| %f ou %F |
ponto flutuante |
| %c |
caracter |
| %e ou E |
Notação científica |
| %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 |
hexadecimal(0x) |
| #+d |
inteiro com sinal -/+ |
| %q |
valor entre aspas duplas |
| %% |
caracter % |
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 1
package main
import "fmt"
type mstruct struct {
id int
dsc string
}
func main() {
var valor int = 64
var str = "string"
var vbl = false
var pint *int = &valor
var estrut mstruct = mstruct{1, "fulano"}
fmt.Printf("%d \n", valor)
fmt.Printf("%o \n", valor)
fmt.Printf("%x \n", valor)
fmt.Printf("%c \n", valor)
fmt.Printf("%s \n", str)
fmt.Printf("%t \n", vbl)
fmt.Printf("%p \n", pint)
fmt.Printf("%c \n", valor)
fmt.Printf("%c \n", valor)
fmt.Printf("%v \n", estrut)
fmt.Printf("%+v \n", estrut)
fmt.Printf("%#v \n", estrut)
fmt.Printf("%+d \n", valor)
fmt.Printf("%q \n", valor)
}
Saída
64
100
40
@
string
false
0xc000012028
@
@
{1 fulano}
{id:1 dsc:fulano}
main.mstruct{id:1, dsc:"fulano"}
+64
'@'