Go 語言 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 stringfmt.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十進制整數%d25
%f浮點數%f3.141593
%s字符串%s → “hello”
%t布爾值%ttrue
%p指針地址%p0xc0000a
%T類型%Tint

四、其他功能

1. Errorf

功能

生成格式化錯誤。

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

2. FormatterStringer 接口

功能

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

示例
type User struct {Name stringAge  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}

五、注意事項

  1. 錯誤處理Scan 系列函數返回成功解析的項數和錯誤。
    n, err := fmt.Scan(&a, &b)
    if err != nil {log.Fatal("輸入錯誤:", err)
    }
    
  2. 性能:頻繁字符串拼接時,優先使用 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 包的方法,可以高效處理輸入輸出、字符串格式化及錯誤生成。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/899033.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/899033.shtml
英文地址,請注明出處:http://en.pswp.cn/news/899033.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在K8S中使用ArgoCD做持續部署

一、了解argocd ArgoCD是一個基于Kubernetes的GitOps持續交付工具,應用的部署和更新都可以在Git倉庫上同步實現,并自帶一個可視化界面。本文介紹如何使用GitArgocd方式來實現在k8s中部署和更新應用服務。關于ci這一塊這里不多介紹。主要講解argocd如何實…

可視化圖解算法:刪除有序(排序)鏈表中重復的元素

1. 題目 描述 刪除給出鏈表中的重復元素(鏈表中元素從小到大有序),使鏈表中的所有元素都只出現一次 例如: 給出的鏈表為1→1→2,返回1→2. 給出的鏈表為1→1→2→3→3返回1→2→3. 數據范圍:鏈表長度滿足 0≤n≤100…

ETL:數據清洗、規范化和聚合的重要性

在當今這個數據呈爆炸式增長的時代,數據已成為企業最為寶貴的資產之一。然而,數據的海量增長也伴隨著諸多問題,如數據來源多樣、結構復雜以及質量問題等,這些問題嚴重阻礙了數據的有效處理與深度分析。在此背景下,ETL&…

spring boot jwt生成token

1、引入jwt依賴 <!--jwt的依賴--> <dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.18.3</version> </dependency> 2、創建TokenUtils工具類 package com.pn.utils;import com.…

豪越科技:融合低空經濟的消防一體化安全管控解決方案

在科技飛速發展的當下&#xff0c;2025 年低空經濟正處于規模化商用的關鍵節點&#xff0c;其在應急救援、物流配送等多領域展現出巨大潛力。豪越科技憑借其先進的消防一體化安全管控方案&#xff0c;與低空經濟深度融合&#xff0c;打造出一套更為高效、智能的消防解決方案&am…

清華大學 | DeepSeek第十版!《DeepSeek政務應用場景及解決方案》

清華大學發布的《DeepSeek政務應用場景及解決方案》研究報告&#xff0c;聚焦人工智能技術DeepSeek在政府治理與公共服務中的創新實踐&#xff0c;系統闡述了其如何通過智能化技術賦能政務數字化轉型&#xff0c;推動治理能力現代化。報告指出&#xff0c;DeepSeek作為融合大數…

R語言雙Y軸折線圖+相關性注釋

目錄 包和數據 作圖代碼及詳解 包和數據 rm(list ls()) library(ggpubr) library(scales) library(ggplot2)data <- iris##鳶尾花數據集 data1 <- data[1:30,c(1,2,3)] > head(data1)Sepal.Length Sepal.Width Petal.Length 1 5.1 3.5 …

Android Compose 框架隱式動畫之過渡動畫深入剖析(二十六)

Android Compose 框架隱式動畫之過渡動畫深入剖析 一、引言 在移動應用開發領域&#xff0c;用戶體驗始終是至關重要的。動畫效果作為提升用戶體驗的關鍵元素&#xff0c;能夠為應用增添生動性和交互性。Android Compose 作為現代 Android UI 工具包&#xff0c;為開發者提供…

sql server如何提高索引命中率

#新星杯14天創作挑戰營第9期# 前言 近期發現以前開發的系統運行緩慢&#xff0c;經排查&#xff0c;發現有很大的優化空間。數據庫版本使用的是sql server&#xff0c;主要有以下一些問題點&#xff1a;數據表無索引、一些不規范的寫法&#xff08;例如in、大表關聯&#xff0…

Qt進程間通信:QSharedMemory 使用詳解

1. 什么是 QSharedMemory&#xff1f; QSharedMemory 是 Qt 中用于進程間共享內存的類。它允許多個進程共享一塊內存區域&#xff0c;從而避免數據傳輸時的 IO 操作&#xff0c;提高通信速度。通過共享內存&#xff0c;多個進程可以直接讀寫這塊內存&#xff0c;而無需經過文件…

2024年3月全國計算機等級考試真題(二級C語言)

&#x1f600; 第1題 下列敘述中正確的是 A. 矩陣是非線性結構 B. 數組是長度固定的線性表 C. 對線性表只能作插入與刪除運算 D. 線性表中各元素的數據類型可以不同 題目解析&#xff1a; A. 矩陣是非線性結構 錯誤。矩陣通常是二維數組&#xff0c;屬…

基于Ebay拍賣網站成交價格的影響因素分析

摘要:近些年來網上拍賣的不斷地發展&#xff0c;網上購物慢慢變成了大家普遍接受的購物方式。因此關于網上拍賣的研究日益成為很多人研究的重點。 影響拍賣網站價格的因素很多&#xff0c;但很少有人分得清楚哪些因素才是比較重要的因素&#xff0c;因此對價格因素分析&#x…

Langchain中的表格解析:RAG 和表格的愛恨情仇

實現 RAG(Retrieval-Augmented Generation)是一個挑戰,尤其是在有效解析和理解非結構化文檔中的表格時。這在處理掃描文檔或圖像格式的文檔時尤為困難。這些挑戰至少包括以下三個方面: 1.表格的“叛逆期”:不準確的解析可能會破壞表格結構: 表格在文檔里就像個叛逆的青少…

Solr-搜索引擎-入門到精通

以下是對 Apache Solr 的簡介及其常用語法的快速入門指南&#xff1a; 一、Solr 是什么&#xff1f; ? 核心定位&#xff1a;Apache Solr 是一個基于 Lucene 的高性能、開源的搜索平臺&#xff0c;支持全文檢索、分詞、高亮、聚合統計等功能。 ? 核心功能&#xff1a; ? 全…

原生后臺GPS位置限制,降低功耗

1.后臺 GPS 位置限制的背景 為了控制功耗&#xff0c;Android 平臺對后臺應用獲取位置信息的頻率進行了限制。后臺的定義與后臺執行限制一致&#xff0c;即應用不在前臺運行時被視為后臺應用。 2.更新間隔限制&#xff1a; 后臺應用獲取位置信息的更新間隔不能超過一定閾值。…

Docker 搭建 PlantUML 服務:高效生成 UML 圖的最佳實踐

PlantUML 是一款開源的 UML 圖形生成工具&#xff0c;它支持生成類圖、時序圖、用例圖、活動圖等多種類型的 UML 圖&#xff0c;廣泛應用于軟件設計、文檔編寫以及團隊溝通中。通過 Docker 安裝 PlantUML&#xff0c;開發者可以快速搭建環境&#xff0c;輕松生成 UML 圖&#x…

簡鹿辦公匯總快速打開 Windows 資源管理器的幾種方式

無論你是剛開始使用電腦的新手&#xff0c;還是已經有一定經驗的用戶&#xff0c;了解如何在 Windows 系統中打開資源管理器都是一個非常基本且重要的技能。Windows 資源管理器&#xff08;現在稱為“文件資源管理器”&#xff09;是幫助你瀏覽、查找和管理計算機上所有文件的主…

嵌入式 python 安裝

下載嵌入式Python后解壓 https://www.python.org/ftp/python/3.12.9/python-3.12.9-embed-amd64.zip cd python-3.12.9-embed-amd64 安裝 pip .\python.exe .\get-pip.py 放開限制 嵌入式 Python 為了減少體積&#xff0c;默認會有一些限制。你需要編輯 python312._pth 文…

DeepSeek底層揭秘——GEMM

目錄 1. 什么是 GEMM&#xff1f; (1) 定義 (2) 核心目標 2. 核心功能 3. 對比傳統通用矩陣乘法庫 4. 技術要素 (1) 硬件感知優化 (2) 自動調優 (3) 高效內存管理 (4) 混合精度計算 5. 難點挑戰&#xff08;含解決方案&#xff09; 6. 技術路徑 7. 具體技術實現 8…

DNA-PAINT

參考: 【科研教程】NUPACK網頁版使用教程 https://www.bilibili.com/video/BV1G94y1W7mN/NUPACK新版網頁版教程-模擬部分 https://zhuanlan.zhihu.com/p/678730568NUPACK 4.0 User Guide https://docs.nupack.org/NUPACK網頁版使用指南 https://zhuanlan.zhihu.com/p/55024017…