- Conceptos básicos
- Printf
- Sprintf (formato sin impresión)
- Encontrar errores fmt con vet
- Hoja de trucos
- Formatos y tipo predeterminados
- Entero (sangría, base, signo)
- Carácter (citado, Unicode)
- Booleano (verdadero/falso)
- Puntero (hexadecimal)
- Flotador (sangría, precisión, notación científica)
- Cadena o segmento de bytes (comillas, sangría, hexadecimal)
- Valores especiales
- Lo básico
- Printf
- Sprintf (formato sin impresión)
- Buscar errores fmt con vet
- Hoja de trucos
- Formatos y tipo predeterminados
- Entero (sangría, la base, el signo)
- Carácter (citado, Unicode)
- Booleano (verdadero/falso)
- Puntero (hexadecimal)
- Flotador (sangría, precisión, notación científica)
- Cadena o byte de la rebanada (cita, sangría, hex)
- valores Especiales
- Más información
Lo básico
Con el paquete Go fmt
puedes formatear números y cuerdas acolchados con espacios o ceros, en diferentes bases y con comillas opcionales.
Envía una cadena de plantilla que contiene el texto que desea formatearplus algunos verbos de anotación que indican a la función fmt
mostrar que formatee los argumentos finales.
Printf
En este ejemplo, fmt.Printf
formatos y escribe en la salida estándar:
fmt.Printf("Binary: %b\%b", 4, 5) // Prints `Binary: 1001`
- la cadena de plantilla es
"Binary: %b\%b"
, - el verbo de anotación
%b
formatea un número en binario, y - el valor especial
\
es una barra invertida.
Como caso especial, el verbo %%
, que no consume argumento, produce un signo de porcentaje:
fmt.Printf("%d %%", 50) // Prints `50 %`
Sprintf (formato sin impresión)
Use fmt.Sprintf
para formatear una cadena sin imprimirla:
s := fmt.Sprintf("Binary: %b\%b", 4, 5) // s == `Binary: 1001`
Buscar errores fmt con vet
Si intenta compilar y ejecutar esta línea de código incorrecta
fmt.Printf("Binary: %b\%b", 4) // An argument to Printf is missing.
encontrará que el programa compilará y luego imprimirá
Binary: 100\%!b(MISSING)
Para detectar este tipo de errores de forma temprana, puede usar el comando vet: puede encontrar llamadas cuyos argumentos no se alinean con la cadena de formato.
$ go vet example.goexample.go:8: missing argument for Printf("%b"): format reads arg 2, have only 1 args
Hoja de trucos
Formatos y tipo predeterminados
- Valor:
int64{0, 1}
Formato | Verbo | Descripción |
---|---|---|
%v |
formato Predeterminado | |
int64{0, 1} | %#v |
Ir-formato de la sintaxis |
int64 | %T |
El tipo de valor |
Entero (sangría, la base, el signo)
- Valor:
15
Formato | Verbo | Descripción |
---|---|---|
15 | %d |
Base 10 |
+15 | %+d |
Mostrar siempre el signo |
␣␣15 | %4d |
Almohadilla con espacios (ancho 4, justificado a la derecha) |
15␣␣ | %-4d |
Almohadilla con espacios (ancho 4, justificado a la izquierda) |
0015 | %04d |
Almohadilla con ceros (ancho 4) |
1111 | %b |
Base 2 |
17 | %o |
Base 8 |
f | %x |
Base 16, en minúsculas |
F | %X |
Base 16, en mayúsculas |
0xf | %#x |
Base 16, con los principales 0x |
Carácter (citado, Unicode)
- Valor:
65
(letra Unicode A)
Formato | Verbo | Descripción |
---|---|---|
A | %c |
Carácter |
‘A’ | %q |
Carácter citado |
U+0041 | %U |
Unicode |
U + 0041 «A’ | %#U |
Unicode con carácter |
Booleano (verdadero/falso)
Use %t
para formatear un booleano como true
o false
.
Puntero (hexadecimal)
Utilice %p
para dar formato a un puntero en notación base 16 con un encabezado 0x
.
Flotador (sangría, precisión, notación científica)
- Valor:
123.456
Formato | Verbo | Descripción |
---|---|---|
1.234560 e+02 | %e |
Notación científica |
123.456000 | %f |
Punto decimal, sin exponente |
123.46 | %.2f |
Predeterminado de ancho, precisión en 2 |
␣␣123.46 | %8.2f |
Ancho 8, precisión 2 |
123.456 | %g |
Exponente como necesarios, necesarios sólo dígitos |
Cadena o byte de la rebanada (cita, sangría, hex)
- Valor:
"café"
Formato | Verbo | Descripción |
---|---|---|
café | %s |
cadena sin formato |
␣␣café | %6s |
la Anchura 6, justificar a la derecha |
café␣␣ | %-6s |
la Anchura 6, justificar a la izquierda |
«café» | %q |
cadena entre comillas |
636166c3a9 | %x |
volcado Hexadecimal de los valores de byte |
63 61 66 c3 a9 | % x |
Hex volcado con espacios |
valores Especiales
Valor | Descripción |
---|---|
\a |
U+0007 de alerta o de campana |
\b |
U+0008 retroceso |
\ |
U+005c barra diagonal inversa |
\t |
U+0009 tabulador horizontal |
\n |
U+000A avance de línea o línea nueva |
\f |
U+000C forma de alimentación |
\r |
U+000D transporte retorno |
\v |
Pestaña vertical U + 000b |
Los valores arbitrarios se pueden codificar con escapes de barra invertida y se pueden usar en cualquier literal de cadena ""
.
Hay cuatro formatos diferentes:
-
\x
seguido por dos dígitos hexadecimales, -
\
seguido exactamente de tres dígitos octales, -
\u
seguido exactamente de cuatro dígitos hexadecimales, -
\U
seguido exactamente ocho dígitos hexadecimales.
Los escapes \u
y \U
representan puntos de código Unicode.
fmt.Println("\caf\u00e9") // Prints \café
Más información
40+ consejos prácticos para cuerdas