• Golang的格式化输出fmt.Printf


    本文来源:Go by example。

    Golang的格式化输出 和 C语言的标准输出基本一样,但是增加了一些针对Golang语言的特有数据结构的格式化输出方式。

    一下就是实例:

    package main
    import "fmt" //一定不要忘了
    
    type point struct{
        x,y int
    }
    
    func test(i , j int) int{ return i+j;}
    
    func main(){
        p := point{1,2}
    
    	fmt.Printf("%d
    ",p)	// {1 2}
    	
    	fmt.Printf("%+v
    ",p)	// {x:1 y:2}
    	
    	fmt.Printf("%#v
    ",p)	// main.point{x:1, y:2}
    
    	//输出类型
    	fmt.Printf("%T
    ",p)	// main.point
    
    	//输出函数签名
    	fmt.Printf("%T
    ",test) //func(int ,int) int
    
    	//输出bool值
    	flag := true
    	fmt.Printf("%t
    ",flag)	// true
    	
    	//尝试将一个字符串作为参数来输出bool值,不要尝试这样做
    	fmt.Printf("%t
    ","true") //%!t(string=true)   
    	
    	//输出十进制形式输出
        fmt.Printf("%d
    ",123)		// 123
    	
    	//输出一个字符,参数对应ASCII码
    	fmt.Printf("%c
    ",98) 		// b
    	
    	//输出一个整数的二进制形式的值
    	fmt.Printf("%b
    ",98) 		// 1100010
    
    	//输出一个字符的二进制形式的值
    	fmt.Printf("%b
    ",'b') 		// 1100010
    
    	//如果参数是数字,则以十六进制形式输出
    	fmt.Printf("%x
    ",456) 		// 1c8
    	
    	//如果参数是字符串,则打印字符串的每一个字符的ASCII码
    	fmt.Printf("%x
    ","hex this") // 6865782074686973  
    	
    	//浮点数形式输出,注意小数位数为6位
    	fmt.Printf("%f
    ",78.53) 	// 78.530000    
    	
    	//注意这里前后不对应,不会报错,但是不会自动转换
    	fmt.Printf("%d
    ",78.53) 	// %!d(float64=78.53) 
    	
    	//科学计数法的形式,注意参数要为小数,不为小数,可以乘1.0
    	fmt.Printf("%e
    ",123400000000.0)	//1.234000e+11 注意参数为小数
    	
    	//科学计数法的形式,注意参数要为小数,不为小数,可以乘1.0
    	fmt.Printf("%E
    ",123000000000.0)	//1.234000E+11 
    	
    	//输出字符串
    	fmt.Printf("%s
    ",""ddadjfaskdafjasfsaf") 	//"ddadjfaskdafjasfsaf
    	
    	//保留字符串两端的双引号
    	fmt.Printf("%q
    ",""dddddddd"")	// ""dddddddd""
    	
    	//输出指针(地址)的值
    	fmt.Printf("%p
    ",&p) //0xc420012090
    	
    	//最小宽度为6,默认右对齐,不足6位时,空格补全,超过6位时,不会截断
    	fmt.Printf("|%6d|%6d|
    ",12,1234567) // |    12|1234567|
    	
    	//最小6个宽度(包含小数点),2位小数,超过6位时,不会截断
    	fmt.Printf("|%6.2f|%6.2f|
    ",12,222.333) // |%!f(int=    12)|222.33|
    	
    	//使用 - 表示左对齐
    	fmt.Printf("|%-6.2f|%-6.2f|
    ",12.2,3.33) //|12.20 |3.33  |    
    	
    	//最小6个宽度,右对齐,不足6个时,空格补齐,超过6位时,不会截断
    	fmt.Printf("|%6s|%6s|
    ","foo","abcdefgg") //|   foo|abcdefgg|
    	
    	////最小6个宽度,右对齐,不足6个时,空格补齐,超过6位时,不会截断
        fmt.Printf("|%-6s|%-6s|
    ","foo","abcdeefgth") //|foo   |abcdeefgth|
    
    	//不会输出内容,相反,会将内容以字符串的形式返回
        s:= fmt.Sprintf("a %s","string")
        fmt.Println(s)	//a string
    }
    

      

      

  • 相关阅读:
    Luogu P4246 [SHOI2008]堵塞的交通(线段树+模拟)
    Luogu P2619 [国家集训队2]Tree I(WQS二分+最小生成树)
    Luogu P2042 [NOI2005]维护数列(平衡树)
    Luogu P1052 过河(dp)
    Luogu P1041 传染病控制(搜索)
    Luogu P2717 寒假作业(平衡树)
    Luogu P2822 组合数问题(前缀和)
    Luogu P2827 蚯蚓(模拟)
    随机图片测试
    Luogu P2458 [SDOI2006]保安站岗(树形dp)
  • 原文地址:https://www.cnblogs.com/-beyond/p/8386869.html
Copyright © 2020-2023  润新知