網(wǎng)站首頁 編程語言 正文
fmt
fmt是go語言中的格式化輸入輸出庫,其中主要分為兩個部分,分別是輸出部分和輸入部分。
輸出
Print函數(shù)的主要功能是輸出,和Print類似的函數(shù)有以下幾個:
-
func Print(a ...interface{}) (n int, err error)
:直接輸出 -
func Println(a ...interface{}) (n int, err error)
:和Print使用方法一樣,但是不同與Print的是Println在每次打印完成之后會自動換行,如果使用Print想要換行需要在結尾加上\n
。 -
func Printf(format string, a ...interface{}) (n int, err error)
:支持格式化輸出字符串,在使用Printf時,可以在函數(shù)中使用格式化字符串占位。
代碼示例:
func main() { a := "Lee" fmt.Print("大家好,") fmt.Printf("我是:%s \n",a) fmt.Println("我在學習Go語言") }
運行結果:
常用占位符:
- %d:整形十進制占位符
- %b:整形二進制占位符
- %o:整形八進制占位符
- %x:整形十六進制占位符,其中a到f為小寫
- %X:整形十六進制占位符,其中A到F為大寫
- %s:字符串占位符
- %f:浮點數(shù)占位符
- %e:浮點數(shù)科學計數(shù)法:例如:1.234e+10
- %E:浮點數(shù)科學計數(shù)法:例如:1.234E+10
- %t:布爾類型占位符
- %p:指針,十六進制表示,并加上0x前綴
Fprint
Fprint系列函數(shù)同樣有以下三個,該函數(shù)會將內容輸出到io.Writer接口類型的變量w中,通常用于朝文件中寫入數(shù)據(jù)。
func Fprint(w io.Writer, a ...interface{}) (n int, err error)
func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error)
func Fprintln(w io.Writer, a ...interface{}) (n int, err error)
代碼示例:
func main() { file, err := os.OpenFile("D://test/a.txt", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644) if err != nil { fmt.Println("打開文件出錯:", err) return } name := "lee" age := 23 // 向文件中寫入數(shù)據(jù) fmt.Fprintf(file, "姓名:%s,年齡:%d \n", name, age) // 向控制臺寫入數(shù)據(jù) fmt.Fprintf(os.Stdout, "寫入成功") }
運行結果:
以上代碼成功將內容寫入到了a.txt文件中。
Sprint
Sprint會將傳入的內容格式化成一個字符串并返回,和Sprint類似的函數(shù)有以下幾個:
-
func Sprint(a ...interface{}) string
:直接返回 -
func Sprintf(format string, a ...interface{}) string
:格式化返回 -
func Sprintln(a ...interface{}) string
:自動換行放回
代碼示例:
func main() { a := "Lee" s1 := fmt.Sprint("直接返回") s2 := fmt.Sprintln("自動換行返回") s3 := fmt.Sprintf("格式化返回:%s", a) fmt.Print(s1) fmt.Print(s2) fmt.Print(s3) }
運行結果:
Errorf
Errorf是根據(jù)傳入的內容格式化后返回一個包含該字符串的error。
func Errorf(format string, a ...interface{}) error
代碼示例:
func main() { a := "error" error := fmt.Errorf("錯誤:%s", a) fmt.Print(error) }
運行結果:
輸入
在go語言中獲取控制臺輸入可以使用以下幾個函數(shù):
func Scan(a ...interface{}) (n int, err error) func Scanf(format string, a ...interface{}) (n int, err error) func Scanln(a ...interface{}) (n int, err error)
Scan
Scan從標準輸入讀取文本,以空格符或換行符為分隔,將讀取到的內容賦值給函數(shù)的參數(shù),函數(shù)返回成功讀取到的數(shù)據(jù)個數(shù)和遇到的錯誤。
代碼示例:
func main() { var name string var age int fmt.Print("請輸入姓名和年齡:") fmt.Scan(&name, &age) fmt.Printf("姓名:%s,年齡:%d \n", name, age) }
運行結果:
Scanf
Scanf根據(jù)format參數(shù)指定的格式去讀取由空白符分隔的值保存到函數(shù)的參數(shù)中。
代碼示例:
func main() { var name string var age int fmt.Print("請輸入姓名和年齡:") fmt.Scanf("name=%s age=%d", &name, &age) fmt.Printf("姓名:%s,年齡:%d \n", name, age) }
運行結果:
使用Scanf進行輸入時,需要完整的在控制臺輸入函數(shù)中指定的格式,例如上述代碼中指定的格式為name=%s age=%d
,則在輸入時就必須使用該格式,如果還是和之前的Scan中一樣只輸入lee 23
是讀取不到內容的。
Scanln
Scanln類似于Scan,但是不同的是使用Scanln時只要輸入了換行之后就會停止讀取。
代碼示例:
func main() { var name string var age int fmt.Print("請輸入姓名和年齡:") fmt.Scanln(&name, &age) fmt.Printf("姓名:%s,年齡:%d \n", name, age) }
運行結果:
例如上述的輸入中,如果僅僅只是輸入了姓名就換行,那么就會停止讀取,但是在Scan中,如果輸入姓名后換行不會停止讀取還需要繼續(xù)輸入年齡后才會停止讀取。
總結
原文鏈接:https://juejin.cn/post/7063781069824196644
相關推薦
- 2022-08-27 Oracle數(shù)據(jù)庫存儲過程的調試過程_oracle
- 2022-10-07 Go語言設計模式之實現(xiàn)觀察者模式解決代碼臃腫_Golang
- 2022-05-22 flex彈性布局詳解_Flex
- 2022-02-22 SWT線程訪問無效:org.eclipse.swt.SWTException: Invalid th
- 2023-01-13 Android?Parcleable接口的調用源碼層分析_Android
- 2022-08-27 C#從前面或后面按指定數(shù)量刪除字符串_C#教程
- 2022-01-17 類組件與函數(shù)組件的區(qū)別 react中class創(chuàng)建的組件與function創(chuàng)建的組件有什么區(qū)別
- 2023-07-07 更新node后項目報錯
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結構-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支