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\n",p)	// {1 2}
	
	fmt.Printf("%+v\n",p)	// {x:1 y:2}
	
	fmt.Printf("%#v\n",p)	// main.point{x:1, y:2}

	//輸出類型
	fmt.Printf("%T\n",p)	// main.point

	//輸出函數簽名
	fmt.Printf("%T\n",test) //func(int ,int) int

	//輸出bool值
	flag := true
	fmt.Printf("%t\n",flag)	// true
	
	//嘗試將一個字符串作為參數來輸出bool值,不要嘗試這樣做
	fmt.Printf("%t\n","true") //%!t(string=true)   
	
	//輸出十進制形式輸出
    fmt.Printf("%d\n",123)		// 123
	
	//輸出一個字符,參數對應ASCII碼
	fmt.Printf("%c\n",98) 		// b
	
	//輸出一個整數的二進制形式的值
	fmt.Printf("%b\n",98) 		// 1100010

	//輸出一個字符的二進制形式的值
	fmt.Printf("%b\n",'b') 		// 1100010

	//如果參數是數字,則以十六進制形式輸出
	fmt.Printf("%x\n",456) 		// 1c8
	
	//如果參數是字符串,則打印字符串的每一個字符的ASCII碼
	fmt.Printf("%x\n","hex this") // 6865782074686973  
	
	//浮點數形式輸出,注意小數位數為6位
	fmt.Printf("%f\n",78.53) 	// 78.530000    
	
	//注意這里前后不對應,不會報錯,但是不會自動轉換
	fmt.Printf("%d\n",78.53) 	// %!d(float64=78.53) 
	
	//科學計數法的形式,注意參數要為小數,不為小數,可以乘1.0
	fmt.Printf("%e\n",123400000000.0)	//1.234000e+11 注意參數為小數
	
	//科學計數法的形式,注意參數要為小數,不為小數,可以乘1.0
	fmt.Printf("%E\n",123000000000.0)	//1.234000E+11 
	
	//輸出字符串
	fmt.Printf("%s\n","\"ddadjfaskdafjasfsaf") 	//"ddadjfaskdafjasfsaf
	
	//保留字符串兩端的雙引號
	fmt.Printf("%q\n","\"dddddddd\"")	// "\"dddddddd\""
	
	//輸出指針(地址)的值
	fmt.Printf("%p\n",&p) //0xc420012090
	
	//最小寬度為6,默認右對齊,不足6位時,空格補全,超過6位時,不會截斷
	fmt.Printf("|%6d|%6d|\n",12,1234567) // |    12|1234567|
	
	//最小6個寬度(包含小數點),2位小數,超過6位時,不會截斷
	fmt.Printf("|%6.2f|%6.2f|\n",12,222.333) // |%!f(int=    12)|222.33|
	
	//使用 - 表示左對齊
	fmt.Printf("|%-6.2f|%-6.2f|\n",12.2,3.33) //|12.20 |3.33  |    
	
	//最小6個寬度,右對齊,不足6個時,空格補齊,超過6位時,不會截斷
	fmt.Printf("|%6s|%6s|\n","foo","abcdefgg") //|   foo|abcdefgg|
	
	////最小6個寬度,右對齊,不足6個時,空格補齊,超過6位時,不會截斷
    fmt.Printf("|%-6s|%-6s|\n","foo","abcdeefgth") //|foo   |abcdeefgth|

	//不會輸出內容,相反,會將內容以字符串的形式返回
    s:= fmt.Sprintf("a %s","string")
    fmt.Println(s)	//a string
}

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM