fmt.Sprintf(格式化輸出)


Go語言fmt.Sprintf(格式化輸出)

 

fmt.Sprintf(格式化樣式, 參數列表…)

  • 格式化樣式:字符串形式,格式化動詞以%開頭。
  • 參數列表:多個參數以逗號分隔,個數必須與格式化樣式中的個數一一對應,否則運行時會報錯。

在 Go 語言中,格式化的命名延續C語言風格:
  1. var progress = 2
  2. var target = 8
  3. // 兩參數格式化
  4. title := fmt.Sprintf("已采集%d個葯草, 還需要%d個完成任務", progress, target)
  5. fmt.Println(title)
  6. pi := 3.14159
  7. // 按數值本身的格式輸出
  8. variant := fmt.Sprintf("%v %v %v", "月球基地", pi, true)
  9. fmt.Println(variant)
  10. // 匿名結構體聲明, 並賦予初值
  11. profile := &struct {
  12. Name string
  13. HP int
  14. }{
  15. Name: "rat",
  16. HP: 150,
  17. }
  18. fmt.Printf("使用'%%+v' %+v\n", profile)
  19. fmt.Printf("使用'%%#v' %#v\n", profile)
  20. fmt.Printf("使用'%%T' %T\n", profile)
var progress = 2
var target = 8

// 兩參數格式化
title := fmt.Sprintf("已采集%d個葯草, 還需要%d個完成任務", progress, target)

fmt.Println(title)

pi := 3.14159
// 按數值本身的格式輸出
variant := fmt.Sprintf("%v %v %v", "月球基地", pi, true)

fmt.Println(variant)

// 匿名結構體聲明, 並賦予初值
profile := &struct {
    Name string
    HP   int
}{
    Name: "rat",
    HP:   150,
}

fmt.Printf("使用'%%+v' %+v\n", profile)

fmt.Printf("使用'%%#v' %#v\n", profile)

fmt.Printf("使用'%%T' %T\n", profile)
代碼輸出如下:

已采集2個葯草, 還需要8個完成任務
"月球基地" 3.14159 true
使用'%+v' &{Name:rat HP:150}
使用'%#v' &struct { Name string; HP int }{Name:"rat", HP:150}
使用'%T' *struct { Name string; HP int }C語言中, 使用%d代表整型參數


下表中標出了常用的一些格式化樣式中的動詞及功能。

表:字符串格式化時常用動詞及功能
動  詞 功  能
%v 按值的本來值輸出
%+v 在 %v 基礎上,對結構體字段名和值進行展開
%#v 輸出 Go 語言語法格式的值
%T 輸出 Go 語言語法格式的類型和值
%% 輸出 % 本體
%b 整型以二進制方式顯示
%o 整型以八進制方式顯示
%d 整型以十進制方式顯示
%x 整型以十六進制方式顯示
%X 整型以十六進制、字母大寫方式顯示
%U Unicode 字符
%f 浮點數
%p 指針,十六進制方式顯示


免責聲明!

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



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