欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

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

一、輸出函數

將數據寫入標準輸出、文件或字符串。

1. Print / Println / Printf

功能

  • Print: 寫入標準輸出,不換行。
  • Println: 寫入標準輸出并換行。
  • Printf: 格式化寫入標準輸出。

示例

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

2. Fprint / Fprintln / Fprintf

功能

將內容寫入指定的 io.Writer(如文件、網絡連接)。

示例

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

3. Sprint / Sprintln / Sprintf

功能

將內容格式化為字符串并返回。

示例

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

二、輸入函數

從標準輸入、文件或字符串讀取數據。

1. Scan / Scanln / Scanf

功能

  • Scan: 從標準輸入讀取,以空格分隔。
  • 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(如文件)讀取數據。

示例

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

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

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

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

3. Sscan / Sscanln / Sscanf

功能

從字符串解析數據。

示例

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十進制整數%d → 25
%f浮點數%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
}

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

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

六、完整函數列表

函數簽名功能說明
Print(a ...any) (n int, err error)標準輸出
Println(a ...any) (n int, err error)標準輸出并換行
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 包的方法,可以高效處理輸入輸出、字符串格式化及錯誤生成。

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

相關文章

  • Go語言中TCP/IP網絡編程的深入講解

    Go語言中TCP/IP網絡編程的深入講解

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

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

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

    go語言基礎 seek光標位置os包的使用

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

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

    本文主要介紹了go gin+token(JWT)驗證實現登陸驗證,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    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)首先要確保其健壯性,不能經常發(fā)生錯誤就卡死之類的情況,為了讓我們的程序更加健壯,我們就需要知道golang里的錯誤處理機制是怎么樣的,這篇文章帶大家一起學習,需要的朋友跟著小編一起來看看吧
    2024-05-05
  • Go設計模式之訪問者模式講解和代碼示例

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

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

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

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

    golang接收post和get請求參數處理

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

    Golang Defer關鍵字特定操作詳解

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

最新評論