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

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

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

前言

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

一、輸出函數(shù)

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

1. Print / Println / Printf

功能

  • Print: 寫(xiě)入標(biāo)準(zhǔn)輸出,不換行。
  • Println: 寫(xiě)入標(biāo)準(zhǔn)輸出并換行。
  • Printf: 格式化寫(xiě)入標(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)容寫(xiě)入指定的 io.Writer(如文件、網(wǎng)絡(luò)連接)。

示例

file, _ := os.Create("output.txt")
fmt.Fprint(file, "Hello ")     // 寫(xiě)入文件內(nèi)容:Hello 
fmt.Fprintln(file, "World!")   // 寫(xiě)入文件內(nèi)容:World!(換行)
fmt.Fprintf(file, "Value: %d", 100) // 寫(xiě)入文件內(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"

三、格式化動(dòng)詞

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

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

四、其他功能

1. Errorf

功能

生成格式化錯(cuò)誤。

示例

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

2. Formatter 和 Stringer 接口

功能

自定義類(lèi)型的格式化行為。

示例

type User struct {
    Name string
    Age  int
}

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

// 實(shí)現(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}

五、注意事項(xiàng)

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

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

函數(shù)簽名功能說(shuō)明
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)寫(xiě)入 io.Writer
Sprint(a ...any) string返回格式化字符串
Errorf(format string, a ...any) error生成格式化錯(cuò)誤

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

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

相關(guān)文章

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

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

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

    go語(yǔ)言執(zhí)行等待直到后臺(tái)goroutine執(zhí)行完成實(shí)例分析

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

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

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

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

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

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

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

    Golang中錯(cuò)誤處理機(jī)制詳解

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

    Go設(shè)計(jì)模式之訪(fǎng)問(wèn)者模式講解和代碼示例

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

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

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

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

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

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

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

最新評(píng)論