亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Go語言fmt模塊的完整方法詳解及示例代碼

 更新時間:2025年03月29日 10:18:30   作者:demonlg0112  
這篇文章主要介紹了Go語言fmt模塊使用的相關(guān)資料,fmt庫最基本的功能之一就是格式化輸出,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

前言

以下是 Go 語言 fmt 模塊的完整方法詳解及示例,涵蓋所有核心功能:

一、輸出函數(shù)

將數(shù)據(jù)寫入標(biāo)準(zhǔn)輸出、文件或字符串。

1. Print / Println / Printf

功能

  • Print: 寫入標(biāo)準(zhǔn)輸出,不換行。
  • Println: 寫入標(biāo)準(zhǔn)輸出并換行。
  • Printf: 格式化寫入標(biāo)準(zhǔn)輸出。

示例

fmt.Print("Hello, ")        // 輸出:Hello, 
fmt.Println("World!")       // 輸出:World!(換行)
fmt.Printf("%s %d\n", "Year:", 2023) // 輸出:Year: 2023(換行)

2. Fprint / Fprintln / Fprintf

功能

將內(nèi)容寫入指定的 io.Writer(如文件、網(wǎng)絡(luò)連接)。

示例

file, _ := os.Create("output.txt")
fmt.Fprint(file, "Hello ")     // 寫入文件內(nèi)容:Hello 
fmt.Fprintln(file, "World!")   // 寫入文件內(nèi)容:World!(換行)
fmt.Fprintf(file, "Value: %d", 100) // 寫入文件內(nèi)容:Value: 100

3. Sprint / Sprintln / Sprintf

功能

將內(nèi)容格式化為字符串并返回。

示例

s1 := fmt.Sprint("Hello", 123)       // s1 = "Hello123"
s2 := fmt.Sprintln("World!")         // s2 = "World!\n"
s3 := fmt.Sprintf("Value: %d", 100)  // s3 = "Value: 100"

二、輸入函數(shù)

從標(biāo)準(zhǔn)輸入、文件或字符串讀取數(shù)據(jù)。

1. Scan / Scanln / Scanf

功能

  • Scan: 從標(biāo)準(zhǔn)輸入讀取,以空格分隔。
  • Scanln: 讀取到換行符停止。
  • Scanf: 按格式字符串讀取。

示例

var a int
var b string

// 輸入:10 ABC
fmt.Scan(&a, &b)      // a=10, b="ABC"

// 輸入:20 XYZ\n
fmt.Scanln(&a, &b)    // a=20, b="XYZ"

// 輸入:Number: 30
fmt.Scanf("Number: %d", &a) // a=30

2. Fscan / Fscanln / Fscanf

功能

從指定的 io.Reader(如文件)讀取數(shù)據(jù)。

示例

file, _ := os.Open("data.txt")
var x int
var y string

// 文件內(nèi)容:100 Golang
fmt.Fscan(file, &x, &y)    // x=100, y="Golang"

// 文件內(nèi)容:200 Rust\n
fmt.Fscanln(file, &x, &y)  // x=200, y="Rust"

// 文件內(nèi)容:Value: 300
fmt.Fscanf(file, "Value: %d", &x) // x=300

3. Sscan / Sscanln / Sscanf

功能

從字符串解析數(shù)據(jù)。

示例

str := "404 Not Found"
var code int
var msg string

fmt.Sscan(str, &code, &msg)     // code=404, msg="Not"
fmt.Sscanln("500 Error\n", &code, &msg) // code=500, msg="Error"
fmt.Sscanf("Status: 200 OK", "Status: %d %s", &code, &msg) // code=200, msg="OK"

三、格式化動詞

常用格式化占位符(部分):

動詞說明示例
%v默認格式%v → {Alice 30}
%d十進制整數(shù)%d → 25
%f浮點數(shù)%f → 3.141593
%s字符串%s → “hello”
%t布爾值%t → true
%p指針地址%p → 0xc0000a
%T類型%T → int

四、其他功能

1. Errorf

功能

生成格式化錯誤。

示例

err := fmt.Errorf("無效的用戶ID: %d", -1)
// err.Error() = "無效的用戶ID: -1"

2. Formatter 和 Stringer 接口

功能

自定義類型的格式化行為。

示例

type User struct {
    Name string
    Age  int
}

// 實現(xiàn) Stringer 接口
func (u User) String() string {
    return fmt.Sprintf("%s (%d歲)", u.Name, u.Age)
}

// 實現(xiàn) Formatter 接口
func (u User) Format(f fmt.State, verb rune) {
    if verb == 'v' {
        fmt.Fprintf(f, "User{Name:%s, Age:%d}", u.Name, u.Age)
    }
}

u := User{"Bob", 30}
fmt.Println(u)        // 輸出:Bob (30歲)
fmt.Printf("%v", u)   // 輸出:User{Name:Bob, Age:30}

五、注意事項

  • 錯誤處理Scan 系列函數(shù)返回成功解析的項數(shù)和錯誤。
    n, err := fmt.Scan(&a, &b)
    if err != nil {
        log.Fatal("輸入錯誤:", err)
    }
    
  • 性能:頻繁字符串拼接時,優(yōu)先使用 strings.Builder 而非 Sprintf。

六、完整函數(shù)列表

函數(shù)簽名功能說明
Print(a ...any) (n int, err error)標(biāo)準(zhǔn)輸出
Println(a ...any) (n int, err error)標(biāo)準(zhǔn)輸出并換行
Printf(format string, a ...any) (n int, err error)格式化輸出
Fprint(w io.Writer, a ...any) (n int, err error)寫入 io.Writer
Sprint(a ...any) string返回格式化字符串
Errorf(format string, a ...any) error生成格式化錯誤

通過掌握 fmt 包的方法,可以高效處理輸入輸出、字符串格式化及錯誤生成。

到此這篇關(guān)于Go語言fmt模塊的文章就介紹到這了,更多相關(guān)Go語言fmt模塊詳解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go語言中TCP/IP網(wǎng)絡(luò)編程的深入講解

    Go語言中TCP/IP網(wǎng)絡(luò)編程的深入講解

    這篇文章主要給大家介紹了關(guān)于Go語言中TCP/IP網(wǎng)絡(luò)編程的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • go語言執(zhí)行等待直到后臺goroutine執(zhí)行完成實例分析

    go語言執(zhí)行等待直到后臺goroutine執(zhí)行完成實例分析

    這篇文章主要介紹了go語言執(zhí)行等待直到后臺goroutine執(zhí)行完成的方法,實例分析了Go語言中WaitGroup的使用技巧,需要的朋友可以參考下
    2015-03-03
  • go語言基礎(chǔ) seek光標(biāo)位置os包的使用

    go語言基礎(chǔ) seek光標(biāo)位置os包的使用

    這篇文章主要介紹了go語言基礎(chǔ) seek光標(biāo)位置os包的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • go gin+token(JWT)驗證實現(xiàn)登陸驗證

    go gin+token(JWT)驗證實現(xiàn)登陸驗證

    本文主要介紹了go gin+token(JWT)驗證實現(xiàn)登陸驗證,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Linux系統(tǒng)下Go語言開發(fā)環(huán)境搭建

    Linux系統(tǒng)下Go語言開發(fā)環(huán)境搭建

    這篇文章主要介紹了Linux系統(tǒng)下Go開發(fā)環(huán)境搭建,需要的朋友可以參考下
    2022-04-04
  • Golang中錯誤處理機制詳解

    Golang中錯誤處理機制詳解

    平時在項目開發(fā)過程中少不了對錯誤的處理,一個好用的系統(tǒng)首先要確保其健壯性,不能經(jīng)常發(fā)生錯誤就卡死之類的情況,為了讓我們的程序更加健壯,我們就需要知道golang里的錯誤處理機制是怎么樣的,這篇文章帶大家一起學(xué)習(xí),需要的朋友跟著小編一起來看看吧
    2024-05-05
  • Go設(shè)計模式之訪問者模式講解和代碼示例

    Go設(shè)計模式之訪問者模式講解和代碼示例

    訪問者是一種行為設(shè)計模式, 允許你在不修改已有代碼的情況下向已有類層次結(jié)構(gòu)中增加新的行為,本文將通過代碼示例給大家詳細的介紹一下Go設(shè)計模式之訪問者模式,需要的朋友可以參考下
    2023-08-08
  • Go?對多個網(wǎng)絡(luò)命令空間中的端口進行監(jiān)聽的解決方案

    Go?對多個網(wǎng)絡(luò)命令空間中的端口進行監(jiān)聽的解決方案

    這篇文章主要介紹了Go?如何對多個網(wǎng)絡(luò)命令空間中的端口進行監(jiān)聽,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2024-07-07
  • golang接收post和get請求參數(shù)處理

    golang接收post和get請求參數(shù)處理

    本文主要介紹了golang接收post和get請求參數(shù)處理,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Golang Defer關(guān)鍵字特定操作詳解

    Golang Defer關(guān)鍵字特定操作詳解

    defer是Go語言中的延遲執(zhí)行語句,用來添加函數(shù)結(jié)束時執(zhí)行的代碼,常用于釋放某些已分配的資源、關(guān)閉數(shù)據(jù)庫連接、斷開socket連接、解鎖一個加鎖的資源,這篇文章主要介紹了golang中的defer函數(shù)理解,需要的朋友可以參考下
    2023-03-03

最新評論