<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本篇部落格為大家帶來 Go 語言中的 fmt 包,該包實現了標準輸入和輸出兩大部分內容。
首先對外輸出,包含 Print
,Fprint
,Sprint
,Errorof
等內容,其中 Print
在之前的部落格中已經有所涉及,本篇我們將其細緻的說明一下。
與 Print 系列同源的函數涉及 Printf
,Println
等內容,其含義如下所示:
Print
:直接輸出內容;
Printf
:格式化輸出字串;
Println
:在輸出的結尾多新增一個換行符。
接下來直接用程式碼演示一下即可掌握。
package main import "fmt" func main() { fmt.Print("單獨一行輸出資訊") name := "夢想橡皮擦" fmt.Printf("博主:%sn", name) fmt.Println("帶換行的展示") fmt.Printf("博主:%sn", name) }
輸出結果如下所示:
單獨一行輸出資訊博主:夢想橡皮擦
帶換行的展示
博主:夢想橡皮擦
其中 Printf
中涉及格式化預留位置相關之後,請看下文。
該函數以 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
建立一個檔案物件,後續就可對檔案物件進行內容寫入。
該函數以 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
系列函數會把傳入的資料生成一個字串返回。
該函數根據 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("%vn", 60) fmt.Printf("%vn", "橡皮擦") o := struct{ name string }{"橡皮擦"} fmt.Printf("%vn", o) fmt.Printf("%#vn", o) fmt.Printf("%Tn", 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
三個標準輸入函數,用於獲取使用者輸入資訊
該函數從標準輸入獲取文字,遇到換行符即表示獲取結束,簡單的範例程式碼如下所示:
package main import ( "fmt" ) func main() { var ( name string age int ) fmt.Scan(&name, &age) fmt.Printf("獲取使用者輸入 name:%s age:%d n", name, age) }
在獲取資料時,可以使用 format
引數,而且要求輸入的資料必須能與對應格式匹配。
Scanln
類似 Scan
,它在遇到換行時才停止掃描。
以上幾個函數的功能類似於標準輸出中的用法,F 開頭的函數用於操作檔案,S 開頭的函數表示從指定字串中讀取資料,到此這篇關於go語言標準庫fmt包的文章就介紹到這了更多關於go標準庫fmt包的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45