golang学习之go字符串格式化

格 式 描 述
%v 按值的本来值输出
%+v 在 %v 基础上,对结构体字段名和值进行展开
%#v 输出 Go 语言语法格式的值
%T 输出 Go 语言语法格式的类型和值
%% 输出 % 本体
%b 整型以二进制方式显示
%o 整型以八进制方式显示
%d 整型以十进制方式显示
%x 整型以十六进制方式显示
%X 整型以十六进制、字母大写方式显示
%U Unicode 字符
%f 浮点数
%p 指针,十六进制方式显示

package main

import (
	"fmt"
	"os"
)

type student struct {
    
    
	name   string
	age    int
	weight float32
}

type point struct {
    
    
	x, y int
}

func main() {
    
    
	s := student{
    
    name: "孙悟空", age: 500, weight: 1000.89}
	fmt.Printf("student struct %%v %v\n", s)
	fmt.Printf("student struct %%+v %+v\n", s)
	fmt.Printf("student struct %%#v %#v\n", s)
	fmt.Printf("student struct %%T %T\n", s)
	fmt.Printf("student age %%b %b\n", s.age)

	sp := &student{
    
    name: "猪八戒", age: 500, weight: 800.99}
	fmt.Printf("student struct %%v %v\n", sp)
	fmt.Printf("student struct %%+v %+v\n", sp)
	fmt.Printf("student struct %%#v %#v\n", sp)
	fmt.Printf("student struct %%p %p\n", sp)
	fmt.Printf("student struct %%T %T\n", sp)

	p := point{
    
    1, 2}
	fmt.Printf("%v\n", p)

	fmt.Printf("%+v\n", p)

	fmt.Printf("%#v\n", p)

	fmt.Printf("%T\n", p)

	fmt.Printf("%t\n", true)

	fmt.Printf("%d\n", 123)

	fmt.Printf("%b\n", 14)

	fmt.Printf("%c\n", 33)

	fmt.Printf("%x\n", 456)

	fmt.Printf("%f\n", 78.9)

	fmt.Printf("%e\n", 123400000.0)
	fmt.Printf("%E\n", 123400000.0)

	fmt.Printf("%s\n", "\"string\"")

	fmt.Printf("%q\n", "\"string\"")

	fmt.Printf("%x\n", "hex this")

	fmt.Printf("%p\n", &p)

	fmt.Printf("|%6d|%6d|\n", 12, 345)

	fmt.Printf("|%6.2f|%6.2f|\n", 1.2, 3.45)

	fmt.Printf("|%-6.2f|%-6.2f|\n", 1.2, 3.45)

	fmt.Printf("|%6s|%6s|\n", "foo", "b")

	fmt.Printf("|%-6s|%-6s|\n", "foo", "b")

	ss := fmt.Sprintf("a %s", "string")
	fmt.Println(ss)

	fmt.Fprintf(os.Stderr, "an %s\n", "error")

	for _, r := range "123qbc中午" {
    
    
		cvt := string(r)
		if r >= 128 {
    
    
			cvt = fmt.Sprintf("\\u%04x", int64(r))
		}
		println(cvt)
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_56349119/article/details/126448215