Skip to content

golang fmt格式化字符串%v,%T #8

Open
@AlexZ33

Description

@AlexZ33

T常用的格式化字符串有:

%v the value in a default format
when printing structs, the plus flag (%+v) adds field names
%#v a Go-syntax representation of the value
%T a Go-syntax representation of the type of the value

不同类型默认的%v 如下:

bool: %t
int, int8 etc.: %d
uint, uint8 etc.: %d, %#x if printed with %#v
float32, complex64, etc: %g
string: %s
chan: %p
pointer: %p

对于interface{}, %v会打印实际类型的值。
举例说明如下:

package main

import(
    "fmt"
)

type Power struct {
         age int
         high int
         name string
}

func main() {
       var i Power = Power{age:10, high:178, name: "NewMan"}
       fmt.Printf("type:%T\n", i)
        fmt.Printf("value:%v\n", i)
        fmt.Printf("value+:%+v\n", i)
        fmt.Printf("value#:%#v\n", i)
 
 
        fmt.Println("========interface========")
        var interf interface{} = i
        fmt.Printf("%v\n", interf)
        fmt.Println(interf)
}

// type:main.Power
// value:{10 178 NewMan}
// value+:{age:10 hight:178 name:NewMan}
// value#:main.Power{age:10, hight:178, name:"NewMan"}
// ========interface========
// {10 178 NewMan}
// {10 178 NewMan}

image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions