<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
fmt是go語言中的格式化輸入輸出庫,其中主要分為兩個部分,分別是輸出部分和輸入部分。
Print函數的主要功能是輸出,和Print類似的函數有以下幾個:
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時,可以在函數中使用格式化字串佔位。程式碼範例:
func main() { a := "Lee" fmt.Print("大家好,") fmt.Printf("我是:%s n",a) fmt.Println("我在學習Go語言") }
執行結果:
常用預留位置:
Fprint系列函數同樣有以下三個,該函數會將內容輸出到io.Writer介面型別的變數w中,通常用於朝檔案中寫入資料。
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 // 向檔案中寫入資料 fmt.Fprintf(file, "姓名:%s,年齡:%d n", name, age) // 向控制檯寫入資料 fmt.Fprintf(os.Stdout, "寫入成功") }
執行結果:
以上程式碼成功將內容寫入到了a.txt檔案中。
Sprint會將傳入的內容格式化成一個字串並返回,和Sprint類似的函數有以下幾個:
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是根據傳入的內容格式化後返回一個包含該字串的error。
func Errorf(format string, a ...interface{}) error
程式碼範例:
func main() { a := "error" error := fmt.Errorf("錯誤:%s", a) fmt.Print(error) }
執行結果:
在go語言中獲取控制檯輸入可以使用以下幾個函數:
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從標準輸入讀取文字,以空格符或換行符為分隔,將讀取到的內容賦值給函數的引數,函數返回成功讀取到的資料個數和遇到的錯誤。
程式碼範例:
func main() { var name string var age int fmt.Print("請輸入姓名和年齡:") fmt.Scan(&name, &age) fmt.Printf("姓名:%s,年齡:%d n", name, age) }
執行結果:
Scanf根據format引數指定的格式去讀取由空白符分隔的值儲存到函數的引數中。
程式碼範例:
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進行輸入時,需要完整的在控制檯輸入函數中指定的格式,例如上述程式碼中指定的格式為name=%s age=%d
,則在輸入時就必須使用該格式,如果還是和之前的Scan中一樣只輸入lee 23
是讀取不到內容的。
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中,如果輸入姓名後換行不會停止讀取還需要繼續輸入年齡後才會停止讀取。
到此這篇關於Go語言標準輸入輸出庫基本使用的文章就介紹到這了,更多相關Go語言標準輸入輸出庫內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援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