網站首頁 編程語言 正文
?? 實戰場景
本篇博客為大家帶來 Go 語言中的 fmt 包,該包實現了標準輸入和輸出兩大部分內容。
首先對外輸出,包含 Print
,Fprint
,Sprint
,Errorof
等內容,其中 Print
在之前的博客中已經有所涉及,本篇我們將其細致的說明一下。
Print 系列函數
與 Print 系列同源的函數涉及 Printf
,Println
等內容,其含義如下所示:
Print
:直接輸出內容;
Printf
:格式化輸出字符串;
Println
:在輸出的結尾多添加一個換行符。
接下來直接用代碼演示一下即可掌握。
package main import "fmt" func main() { fmt.Print("單獨一行輸出信息") name := "夢想橡皮擦" fmt.Printf("博主:%s\n", name) fmt.Println("帶換行的展示") fmt.Printf("博主:%s\n", name) }
輸出結果如下所示:
單獨一行輸出信息博主:夢想橡皮擦
帶換行的展示
博主:夢想橡皮擦
其中 Printf
中涉及格式化占位符相關之后,請看下文。
Fprint 函數
該函數以 F 開頭,基本可以確定其和文件操作有直接關系,在實踐中會發現該函數會將內容輸出到 io.Writer
,測試代碼如下所示:
package main import ( "fmt" "os" ) func main() { // 打開文件對象,并準確寫入內容 fileObj, err := os.OpenFile("./ca.txt", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644) if err != nil { fmt.Println("文件異常:", err) return } name := "夢想橡皮擦" fmt.Fprintf(fileObj, "姓名:%s", name) }
在編寫代碼前,注意優先導入 os
包,用于操作文件,然后使用 os.OpenFile
創建一個文件對象,后續就可對文件對象進行內容寫入。
Sprint 函數
該函數以 S
打頭,那必然和字符串有關,示例代碼如下所示:
package main import ( "fmt" ) func main() { // Sprint 函數 s1 := fmt.Sprint("橡皮擦") name := "橡皮擦" age := 18 s2 := fmt.Sprintf("name:%s,age:%d", name, age) s3 := fmt.Sprintln("橡皮擦") fmt.Println(s1, s2, s3) }
Sprint
系列函數會把傳入的數據生成一個字符串返回。
Errorf 函數
該函數根據 format 參數對字符串進行格式化并返回。
package main import ( "fmt" ) func main() { err := fmt.Errorf("這是一個錯誤") fmt.Print(err) }
該內容與具體場景有關系,直接使用,與普通字符串無太大差異。
?? 格式化占位符
在 Go 中只要函數名中攜帶了 printf
,那就支持 format 格式化參數,即占位符,下面我們對占位符進行一下基本說明。
通用部分
占位符都由 %
開頭,后跟具體類型。
%v
:值默認形式;
%+v
:輸出結構體會攜帶字段名;
%#v
:用 Go 的語法表示值;
%T
:值類型;
%%
:打印符號 %
。
可以使用下述代碼進行測試:
package main import ( "fmt" ) func main() { fmt.Printf("%v\n", 60) fmt.Printf("%v\n", "橡皮擦") o := struct{ name string }{"橡皮擦"} fmt.Printf("%v\n", o) fmt.Printf("%#v\n", o) fmt.Printf("%T\n", o) fmt.Printf("60%%\n") }
整型相關
與整型相關的占位符有:
%b
:二進制展示;
%c
:unicode 編碼展示;
%d
:十進制;
%o
:八進制;
%x
:十六進制小寫;
%X
:十六進制大寫;
%q
:go 語法字符字面值。
本部分比較簡單,直接測試一下即可,在實踐中根據需要展示。
浮點數與復數
%b
:去除小數部分,二進制指數的科學計數法;
%e
:科學計數法,字母 e
小寫;
%E
:同上,字母 e
大寫;
%f
:展示小數;
%F
:同上;
%g
:根據實際情況使用 %e
還是 %f
。
布爾型和指針
%t
:展示為 true 和 false;
%p
:十六進制展示,并且前導加 ox
。
?? 標準輸入
Go 語言 fmt 包下有 fmt.Scan
,fmt.Scanf
,fmt.Scanln
三個標準輸入函數,用于獲取用戶輸入信息
fmt.Scan
該函數從標準輸入獲取文本,遇到換行符即表示獲取結束,簡單的示例代碼如下所示:
package main import ( "fmt" ) func main() { var ( name string age int ) fmt.Scan(&name, &age) fmt.Printf("獲取用戶輸入 name:%s age:%d \n", name, age) }
fmt.Scanf
在獲取數據時,可以使用 format
參數,而且要求輸入的數據必須能與對應格式匹配。
fmt.Scanln
Scanln
類似 Scan
,它在遇到換行時才停止掃描。
Fscan 和 Sscan 系列函數
原文鏈接:https://juejin.cn/post/7126440999357775902
相關推薦
- 2022-11-11 Android布局ConstraintLayout代碼修改約束及輔助功能_Android
- 2023-04-11 Golang使用協程實現批量獲取數據_Golang
- 2023-01-03 python實現線性插值的示例_python
- 2022-06-02 Android?實例代碼帶你掌握FrameLayout_Android
- 2022-08-27 C#從前面或后面按指定數量刪除字符串_C#教程
- 2022-09-05 詳解apache編譯安裝httpd-2.4.54及三種風格的init程序特點和區別_Linux
- 2023-11-13 Linux Ubuntu修改用戶名和主機名
- 2023-12-23 Vercel 部署本地項目
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支