最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go使用fmt包輸出與格式化核心庫的完整指南

 更新時間:2026年03月23日 08:30:02   作者:程序員愛釣魚  
在 Go 語言中,fmt 是最基礎也是使用頻率最高的標準庫之一,幾乎每一個 Go 程序都會用到它,下面小編就和大家詳細介紹一下fmt包的具體使用吧

在 Go 語言中,fmt 是最基礎也是使用頻率最高的標準庫之一。幾乎每一個 Go 程序都會用到它,無論是打印調(diào)試信息、格式化字符串、構建日志,還是從標準輸入讀取數(shù)據(jù)。fmt 的核心作用可以用一句話概括:提供統(tǒng)一、強大的格式化輸入輸出能力。

與很多語言不同,Go 沒有復雜的字符串拼接語法,而是通過 fmt 來完成大部分輸出和字符串構建工作。這種設計讓代碼更加清晰,也更容易維護。

在日常開發(fā)中,最常用的是輸出函數(shù)。fmt.Print() 用于直接輸出內(nèi)容,不會自動換行,適合連續(xù)拼接輸出。

fmt.Print("Hello ")
fmt.Print("Go")

輸出結果:

Hello Go

如果希望自動換行,可以使用 fmt.Println()。它不僅會在末尾加換行,還會在多個參數(shù)之間自動加空格,這是開發(fā)中最常用的打印方式。

fmt.Println("Hello", "Go")

輸出:

Hello Go

當需要更精細的控制時,就要使用 fmt.Printf()。這個函數(shù)支持格式化字符串,通過占位符控制輸出格式。

name := "Alice"
age := 25

fmt.Printf("name: %s age: %d\n", name, age)

輸出:

name: Alice age: 25

Printf 的核心是格式化占位符,常見的包括:

  • %s  字符串
  • %d  整數(shù)
  • %f  浮點數(shù)
  • %t  布爾值
  • %v  默認格式
  • %T  類型

其中 %v 是最常用的,它可以自動匹配變量類型并輸出內(nèi)容,而 %T 則用于調(diào)試變量類型。

除了輸出到終端,fmt 還可以生成字符串。fmt.Sprintf() 是一個非常重要的函數(shù),它不會打印內(nèi)容,而是返回格式化后的字符串。

msg := fmt.Sprintf("user=%s id=%d", "bob", 1001)
fmt.Println(msg)

輸出:

user=bob id=1001

這個函數(shù)在構建日志、拼接 SQL、生成 URL 時非常常見。

如果需要寫入文件或網(wǎng)絡連接,可以使用 fmt.Fprintf(),它允許把輸出寫入任意實現(xiàn)了 io.Writer 接口的對象。

file, _ := os.Create("log.txt")
fmt.Fprintf(file, "log: %s\n", "start")

在調(diào)試結構體時,fmt 提供了更強大的格式化能力。例如:

type User struct {
	Name string
	Age  int
}

u := User{"Tom", 30}

fmt.Printf("%v\n", u)
fmt.Printf("%+v\n", u)
fmt.Printf("%#v\n", u)

輸出分別是:

{Tom 30}
{Name:Tom Age:30}
main.User{Name:"Tom", Age:30}

可以看到:

%v 輸出值 %+v 帶字段名 %#v 輸出 Go 語法格式

在調(diào)試復雜結構時非常有用。

fmt 還支持對輸出格式進行精細控制,例如控制寬度和精度。最常見的就是控制浮點數(shù)的小數(shù)位數(shù)。

price := 19.999
fmt.Printf("%.2f\n", price)

輸出:

20.00

還可以控制對齊方式:

fmt.Printf("%10d\n", 100)   // 右對齊
fmt.Printf("%-10d\n", 100)  // 左對齊

這種能力在構建表格輸出或 CLI 工具時非常實用。

除了輸出,fmt 也提供了輸入能力。fmt.Scan() 可以從標準輸入讀取數(shù)據(jù)。

var name string
fmt.Scan(&name)

fmt.Println("hello", name)

用戶輸入:

Alice

輸出:

hello Alice

如果需要按行讀取,可以使用 fmt.Scanln();如果需要按格式解析輸入,可以使用 fmt.Scanf()

var name string
var age int

fmt.Scanf("%s %d", &name, &age)

輸入:

Tom 18

程序會自動解析為兩個變量。

在實際開發(fā)中,fmt 常見的使用方式包括:打印調(diào)試信息、構建日志字符串、生成格式化文本、CLI 輸出以及簡單的輸入處理。雖然在高性能場景中(例如日志系統(tǒng))可能會用更專業(yè)的庫替代,但在絕大多數(shù)場景下,fmt 已經(jīng)足夠使用。

需要注意的是,fmt 的格式化功能是有一定性能開銷的,因為它需要解析格式字符串。如果是在高頻調(diào)用的性能敏感場景,可以考慮使用字符串拼接或 strconv 來優(yōu)化。

從整體來看,fmt 是 Go 標準庫中最基礎也是最重要的工具之一。它統(tǒng)一了輸出、格式化和輸入處理方式,讓開發(fā)者可以用簡單直觀的方式操作數(shù)據(jù)。無論是初學者還是高級開發(fā)者,都會頻繁使用這個包。

掌握 fmt 的關鍵在于熟悉常用函數(shù)(Print、Println、Printf、Sprintf)以及格式化占位符。一旦熟練使用,你會發(fā)現(xiàn) Go 的輸出與字符串處理會變得非常高效和優(yōu)雅。

到此這篇關于Go使用fmt包輸出與格式化核心庫的完整指南的文章就介紹到這了,更多相關Go fmt包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • golang利用unsafe操作未導出變量-Pointer使用詳解

    golang利用unsafe操作未導出變量-Pointer使用詳解

    這篇文章主要給大家介紹了關于golang利用unsafe操作未導出變量-Pointer使用的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧
    2018-08-08
  • 使用Go語言實現(xiàn)向文件寫入內(nèi)容的示例代碼

    使用Go語言實現(xiàn)向文件寫入內(nèi)容的示例代碼

    向文件寫入內(nèi)容 的完整內(nèi)容,這是文件操作的另一個核心技能,與讀取配套,適用于日志記錄、生成報告、寫配置等場景,本文通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2025-07-07
  • 使用Go語言創(chuàng)建WebSocket服務的實現(xiàn)示例

    使用Go語言創(chuàng)建WebSocket服務的實現(xiàn)示例

    這篇文章主要介紹了使用Go語言創(chuàng)建WebSocket服務的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • 實現(xiàn)像php一樣方便的go ORM數(shù)據(jù)庫操作示例詳解

    實現(xiàn)像php一樣方便的go ORM數(shù)據(jù)庫操作示例詳解

    這篇文章主要為大家介紹了實現(xiàn)像php一樣方便的go ORM數(shù)據(jù)庫操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • Go語言中Serverless實戰(zhàn)

    Go語言中Serverless實戰(zhàn)

    本文主要介紹了Go語言中Serverless實戰(zhàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2026-03-03
  • golang官方嵌入文件到可執(zhí)行程序的示例詳解

    golang官方嵌入文件到可執(zhí)行程序的示例詳解

    這篇文章主要介紹了golang官方嵌入文件到可執(zhí)行程序,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • 詳解Golang time包中的結構體time.Ticker

    詳解Golang time包中的結構體time.Ticker

    在日常開發(fā)過程中,會頻繁遇到對時間進行操作的場景,使用 Golang 中的 time 包可以很方便地實現(xiàn)對時間的相關操作,接下來的幾篇文章會詳細講解 time 包,本文講解一下 time 包中的結構體 time.Ticker,需要的朋友可以參考下
    2023-08-08
  • Go使用Gin寫一個對MySQL的增刪改查的實現(xiàn)

    Go使用Gin寫一個對MySQL的增刪改查的實現(xiàn)

    本文主要介紹了使用Go語言結合Gin和GORM框架創(chuàng)建users表,實現(xiàn)增刪查接口,配置mysql依賴并啟動服務測試數(shù)據(jù)操作,具有一定的參考價值,感興趣的可以了解一下
    2025-07-07
  • GO語言異常處理機制panic和recover分析

    GO語言異常處理機制panic和recover分析

    這篇文章主要介紹了GO語言異常處理機制panic和recover,分析了捕獲運行時發(fā)生錯誤的方法,是非常實用的技巧,需要的朋友可以參考下
    2014-12-12
  • go語言制作的zip壓縮程序

    go語言制作的zip壓縮程序

    這篇文章主要介紹了go語言制作的zip壓縮程序,其主體思路是首先創(chuàng)建一個讀寫緩沖,然后用壓縮器包裝該緩沖,用Walk方法來將所有目錄下的文件寫入zip,有需要的小伙伴參考下。
    2015-03-03

最新評論

长子县| 镇原县| 晋中市| 河津市| 南木林县| 定远县| 台南县| 旌德县| 重庆市| 静乐县| 湖南省| 封开县| 玉龙| 开封县| 南宫市| 莱西市| 崇仁县| 岐山县| 揭西县| 大余县| 长乐市| 驻马店市| 江永县| 马鞍山市| 杭锦旗| 基隆市| 茶陵县| 隆回县| 合水县| 密山市| 阿拉善盟| 汶川县| 宁海县| 皮山县| 嘉定区| 洛扎县| 宣化县| 常熟市| 阆中市| 昭通市| 伊春市|