1. Salida formateada universal
Para la salida formateada en lenguaje Go, generalmente se usa el paquete fmt. El formato de salida común se muestra en la siguiente tabla:
Formato de salida
Contenido de salida
%v
El formato de representación predeterminado del valor.
%+v
Similar a %v, pero los nombres de los campos se agregarán al generar la estructura
%#v
Ir a la representación de sintaxis del valor.
%T
Ir a la representación de sintaxis de tipos de valores
package main
import "fmt"
func main() {
var s string = "ajwlf"
var z int = 1
var r rune = '一'
fmt.Printf("s: %v\n", s)
fmt.Printf("s: %+v\n", s)
fmt.Printf("s: %#v\n", s)
fmt.Printf("s: %T\n", s)
fmt.Printf("z: %v\n", z)
fmt.Printf("z: %T\n", z)
fmt.Printf("r: %v\n", r)
fmt.Printf("r: %T\n", r)
}
afuera:
s: ajwlf
s: ajwlf
s: "ajwlf"
s: string
z: 1
z: int
r: 19968
r: int32
2.Tipo booleano
Formato de salida
Contenido de salida
%t
palabra verdadera o falsa
package main
import "fmt"
func main() {
var flag bool
fmt.Printf("%T, %t \n", flag, flag)
flag = true
fmt.Printf("%T, %t \n", flag, flag)
}
// 结果
bool, false
bool, true
3. tipo entero
Formato de salida
Contenido de salida
%b
Representado como binario
%C
El valor del código Unicode correspondiente a este valor.
%d
Expresado como decimal
%8d
Significa que la longitud del número entero es 8. Si es menor que 8, agregue un espacio antes del valor, si excede 8, prevalecerá el valor real.
%08d
Significa que la longitud del número entero es 8. Si es menor que 8, agregue 0 delante del valor; si excede 8, prevalecerá el valor real.
%o
Representado como octal
% q
El valor literal del carácter de sintaxis del lenguaje Go correspondiente a este valor está entre comillas simples y se representará mediante un escape seguro cuando sea necesario.
%X
Expresado en hexadecimal, use a~f
%X
Expresado en hexadecimal, use A~F
%U
Representado en formato Unicode: U+1234, equivalente a U+%04X
%pag
tipo de puntero
package main
import "fmt"
func main() {
fmt.Printf("%T, %d \n", 123, 123)
fmt.Printf("%T, %5d \n", 123, 123)
fmt.Printf("%T, %05d \n", 123, 123)
fmt.Printf("%T, %b \n", 123, 123)
fmt.Printf("%T, %o \n", 123, 123)
fmt.Printf("%T, %c \n", 97, 97)
fmt.Printf("%T, %q \n", 97, 97)
fmt.Printf("%T, %x \n", 123, 123)
fmt.Printf("%T, %X \n", 123, 123)
fmt.Printf("%T, %U \n", '一', '一')
}
// 结果
int, 123
int, 123
int, 00123
int, 1111011
int, 173
int, a
int, 'a'
int, 7b
int, 7B
int32, U+4E00
4. Tipo de coma flotante y tipo de número complejo
Formato de salida
Contenido de salida
%b
Notación científica sin parte decimal y exponente binario, como -123456p-78
%mi
(=%.6e) Notación científica con 6 decimales, como -1234.456e+78
%MI
Notación científica, como -1234.456E+78
%F
(=%.6f) tiene 6 decimales, como 123.456123
%F
Equivalente a %f
%gramo
Utilice el formato %e o %f según la situación real (obtenga resultados más concisos y precisos)
%GRAMO
Utilice el formato %E o %F según la situación real (obtenga resultados más concisos y precisos)
package main
import "fmt"
func main() {
fmt.Printf("%b \n", 123.123456)
fmt.Printf("%f \n", 123.1)
fmt.Printf("%.2f \n", 123.125456)
fmt.Printf("%e \n", 123.123456)
fmt.Printf("%E \n", 123.123456)
fmt.Printf("%.1e \n", 123.123456)
fmt.Printf("%F \n", 123.123456)
fmt.Printf("%g \n", 123.123456)
fmt.Printf("%G \n", 123.123456)
}
// 结果
8664042977533870p-46
123.100000
123.13
1.231235e+02
1.231235E+02
1.2e+02
123.123456
123.123456
123.123456
5. Cadenas y matrices de bytes
Formato de salida
Contenido de salida
%s
Salida directa de cadena o matriz de bytes
% q
El valor literal de la cadena de sintaxis de Go correspondiente a este valor está entre comillas dobles y se escapará de forma segura si es necesario.
%X
Cada byte está representado por un número hexadecimal de dos caracteres, usando a~f
%X
Cada byte está representado por un número hexadecimal de dos caracteres, usando A~F
package main
import "fmt"
func main() {
arr := []byte{'x', 'y', 'z', 'z'}
fmt.Printf("%s \n", "欢迎访问")
fmt.Printf("%q \n", "欢迎访问")
fmt.Printf("%x \n", "欢迎访问")
fmt.Printf("%X \n", "欢迎访问")
fmt.Printf("%T, %s \n", arr, arr)
fmt.Printf("%T, %q \n", arr, arr)
fmt.Printf("%T, %x \n", arr, arr)
fmt.Printf("%T, %X \n", arr, arr)
}
//
欢迎访问
"欢迎访问"
e6aca2e8bf8ee8aebfe997aee5beaee5ada6e88b91
E6ACA2E8BF8EE8AEBFE997AEE5BEAEE5ADA6E88B91
[]uint8, xyzz
[]uint8, "xyzz"
[]uint8, 78797a7a
[]uint8, 78797A7A