美文网首页
Go 格式化输出fmt.Printf

Go 格式化输出fmt.Printf

作者: parker7 | 来源:发表于2018-10-16 11:10 被阅读0次

    类似于C或其它语言里的printf函数,fmt.Printf函数对一些表达式产生格式化输出。该函数的首个参数是个格式字符串,指定后续参数被如何格式化。各个参数的格式取决于“转换字符”(conversion character),形式为百分号后跟一个字母。

    # 部分转换字符
    %d          十进制整数
    %x, %o, %b  十六进制,八进制,二进制整数。
    %f, %g, %e  浮点数: 3.141593 3.141592653589793 3.141593e+00
    %t          布尔:true或false
    %c          字符(rune) (Unicode码点)
    %s          字符串
    %q          带双引号的字符串"abc"或带单引号的字符'c'
    %v          变量的自然形式(natural format)
    %T          变量的类型
    %%          字面上的百分号标志(无操作数)
    
    package main
    
    import "fmt"
    
    type User struct {
        id   int
        Name string
        Age  int
    }
    
    var (
        u = User{id: 1, Name: "pb", Age: 18}
    )
    
    func main() {
        //十进制整数,十六进制,八进制,二进制整数
        fmt.Printf("%d,%x,%o,%b\n",11,11,11,11) //11,b,13,1011
    
        //浮点数
        fmt.Printf("%f, %g, %e\n",3.1415926,3.141592653589793,3.141592653589793) //3.141593, 3.141592653589793, 3.141593e+00
    
        //布尔
        fmt.Printf("%t\n",true)//true
    
        //字符
        fmt.Printf("%c\n",98)// b
    
        //变量的类型
        fmt.Printf("%T\n","C")// string
    
        fmt.Printf("%v\n", u) //{1 pb 18}
    
        fmt.Printf("%+v\n", u) //{id:1 Name:pb Age:18}
    
        fmt.Printf("%#v\n", u) //main.User{id:1, Name:"pb", Age:18}
    
        //宽度为6,右对齐,不足6位时,空格补全,超过6位时,不会截断
        fmt.Printf("%6d,%6d\n", 12, 1234567) //    12,1234567
    
        //宽度为6,右对齐,不足6位时,空格补全,超过6位时,不会截断
        fmt.Printf("%6s,%6s\n", "abd", "abcdefghijk") //   abd,abcdefghijk
    
        //宽度为6(包含小数点),2位小数,右对齐,不足6位时,整数部分空格补全,小数部分补零,超过6位时,小数部分四舍五入
        fmt.Printf("%6.2f,%6.2f\n", 12.3, 123.4567) // 12.30,123.46
    
        //与上面一样,- 表示左对齐
        fmt.Printf("%-6.2f,%-6.2f\n", 12.2, 123.4567) //12.20 ,123.46
    }
    

    附录:
    fmt-demo

    相关文章

      网友评论

          本文标题:Go 格式化输出fmt.Printf

          本文链接:https://www.haomeiwen.com/subject/jpmczftx.html