欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Go語言標(biāo)準(zhǔn)輸入輸出庫的基本使用教程

 更新時(shí)間:2022年02月14日 10:20:48   作者:良猿  
輸入輸出在任何一門語言中都必須提供的一個(gè)功能,下面這篇文章主要給大家介紹了關(guān)于Go語言標(biāo)準(zhǔn)輸入輸出庫的基本使用,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

fmt

fmt是go語言中的格式化輸入輸出庫,其中主要分為兩個(gè)部分,分別是輸出部分和輸入部分。

輸出

Print

Print函數(shù)的主要功能是輸出,和Print類似的函數(shù)有以下幾個(gè):

  • func Print(a ...interface{}) (n int, err error):直接輸出
  • func Println(a ...interface{}) (n int, err error):和Print使用方法一樣,但是不同與Print的是Println在每次打印完成之后會(huì)自動(dòng)換行,如果使用Print想要換行需要在結(jié)尾加上\n。
  • func Printf(format string, a ...interface{}) (n int, err error):支持格式化輸出字符串,在使用Printf時(shí),可以在函數(shù)中使用格式化字符串占位。

代碼示例:

func main() {
	a := "Lee"
	fmt.Print("大家好,")
	fmt.Printf("我是:%s \n",a)
	fmt.Println("我在學(xué)習(xí)Go語言")
}

運(yùn)行結(jié)果:

常用占位符:

  • %d:整形十進(jìn)制占位符
  • %b:整形二進(jìn)制占位符
  • %o:整形八進(jìn)制占位符
  • %x:整形十六進(jìn)制占位符,其中a到f為小寫
  • %X:整形十六進(jìn)制占位符,其中A到F為大寫
  • %s:字符串占位符
  • %f:浮點(diǎn)數(shù)占位符
  • %e:浮點(diǎn)數(shù)科學(xué)計(jì)數(shù)法:例如:1.234e+10
  • %E:浮點(diǎn)數(shù)科學(xué)計(jì)數(shù)法:例如:1.234E+10
  • %t:布爾類型占位符
  • %p:指針,十六進(jìn)制表示,并加上0x前綴

Fprint

Fprint系列函數(shù)同樣有以下三個(gè),該函數(shù)會(huì)將內(nèi)容輸出到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("打開文件出錯(cuò):", err)
		return
	}
	name := "lee"
	age := 23
	// 向文件中寫入數(shù)據(jù)
	fmt.Fprintf(file, "姓名:%s,年齡:%d \n", name, age)
	// 向控制臺(tái)寫入數(shù)據(jù)
	fmt.Fprintf(os.Stdout, "寫入成功")
}

運(yùn)行結(jié)果:

以上代碼成功將內(nèi)容寫入到了a.txt文件中。

Sprint

Sprint會(huì)將傳入的內(nèi)容格式化成一個(gè)字符串并返回,和Sprint類似的函數(shù)有以下幾個(gè):

  • func Sprint(a ...interface{}) string:直接返回
  • func Sprintf(format string, a ...interface{}) string:格式化返回
  • func Sprintln(a ...interface{}) string:自動(dòng)換行放回

代碼示例:

func main() {
	a := "Lee"
	s1 := fmt.Sprint("直接返回")
	s2 := fmt.Sprintln("自動(dòng)換行返回")
	s3 := fmt.Sprintf("格式化返回:%s", a)
	fmt.Print(s1)
	fmt.Print(s2)
	fmt.Print(s3)
}

運(yùn)行結(jié)果:

Errorf

Errorf是根據(jù)傳入的內(nèi)容格式化后返回一個(gè)包含該字符串的error。

func Errorf(format string, a ...interface{}) error 

代碼示例:

func main() {
	a := "error"
	error := fmt.Errorf("錯(cuò)誤:%s", a)
	fmt.Print(error)
}

運(yùn)行結(jié)果:

輸入

在go語言中獲取控制臺(tái)輸入可以使用以下幾個(gè)函數(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從標(biāo)準(zhǔn)輸入讀取文本,以空格符或換行符為分隔,將讀取到的內(nèi)容賦值給函數(shù)的參數(shù),函數(shù)返回成功讀取到的數(shù)據(jù)個(gè)數(shù)和遇到的錯(cuò)誤。

代碼示例:

func main() {
	var name string
	var age int
	fmt.Print("請輸入姓名和年齡:")
	fmt.Scan(&name, &age)
	fmt.Printf("姓名:%s,年齡:%d \n", name, age)
}

運(yùn)行結(jié)果:

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)
}

運(yùn)行結(jié)果:

使用Scanf進(jìn)行輸入時(shí),需要完整的在控制臺(tái)輸入函數(shù)中指定的格式,例如上述代碼中指定的格式為name=%s age=%d,則在輸入時(shí)就必須使用該格式,如果還是和之前的Scan中一樣只輸入lee 23是讀取不到內(nèi)容的。

Scanln

Scanln類似于Scan,但是不同的是使用Scanln時(shí)只要輸入了換行之后就會(huì)停止讀取。

代碼示例:

func main() {
	var name string
	var age int
	fmt.Print("請輸入姓名和年齡:")
	fmt.Scanln(&name, &age)
	fmt.Printf("姓名:%s,年齡:%d \n", name, age)
}

運(yùn)行結(jié)果:

例如上述的輸入中,如果僅僅只是輸入了姓名就換行,那么就會(huì)停止讀取,但是在Scan中,如果輸入姓名后換行不會(huì)停止讀取還需要繼續(xù)輸入年齡后才會(huì)停止讀取。

總結(jié)

到此這篇關(guān)于Go語言標(biāo)準(zhǔn)輸入輸出庫基本使用的文章就介紹到這了,更多相關(guān)Go語言標(biāo)準(zhǔn)輸入輸出庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • golang操作連接數(shù)據(jù)庫實(shí)現(xiàn)mysql事務(wù)示例

    golang操作連接數(shù)據(jù)庫實(shí)現(xiàn)mysql事務(wù)示例

    這篇文章主要為大家介紹了golang操作連接數(shù)據(jù)庫實(shí)現(xiàn)mysql事務(wù)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • Windows下使用go語言寫程序安裝配置實(shí)例

    Windows下使用go語言寫程序安裝配置實(shí)例

    這篇文章主要介紹了Windows下使用go語言寫程序安裝配置實(shí)例,本文講解了安裝go語言、寫go代碼、生成可執(zhí)行文件、批量生成可執(zhí)行文件等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • 詳解玩轉(zhuǎn)直播系列之消息模塊演進(jìn)

    詳解玩轉(zhuǎn)直播系列之消息模塊演進(jìn)

    本篇文章針對(duì)秀場直播,簡單地描述一下消息模型,說明一下我們消息模型的架構(gòu),并結(jié)合我們一年以來,通過處理不同的業(yè)務(wù)線上問題,來進(jìn)行演進(jìn)式的消息模型架構(gòu)的升級(jí)與調(diào)整,將此整理成文,并分享給大家
    2021-06-06
  • Golang?HTTP服務(wù)超時(shí)控制實(shí)現(xiàn)原理分析

    Golang?HTTP服務(wù)超時(shí)控制實(shí)現(xiàn)原理分析

    這篇文章主要介紹了Golang?HTTP服務(wù)超時(shí)控制實(shí)現(xiàn)原理,HTTP服務(wù)的超時(shí)控制是保障服務(wù)高可用性的重要措施之一,由于HTTP服務(wù)可能會(huì)遇到網(wǎng)絡(luò)延遲,資源瓶頸等問題,因此需要對(duì)請求進(jìn)行超時(shí)控制,以避免服務(wù)雪崩等問題,需要的朋友可以參考下
    2023-05-05
  • 利用Go語言實(shí)現(xiàn)流量回放工具的示例代碼

    利用Go語言實(shí)現(xiàn)流量回放工具的示例代碼

    今天給大家推薦一款使用Go語言編寫的流量回放工具?--?goreplay;工作中你一定遇到過需要在服務(wù)器上抓包的場景,有了這個(gè)工具就可以助你一臂之力,廢話不多,我們接下來來看一看這個(gè)工具
    2022-09-09
  • Go語言單線程運(yùn)行也會(huì)有的并發(fā)問題解析

    Go語言單線程運(yùn)行也會(huì)有的并發(fā)問題解析

    這篇文章主要為大家介紹了Go語言單線程運(yùn)行的并發(fā)問題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Go常用技能日志log包創(chuàng)建使用示例

    Go常用技能日志log包創(chuàng)建使用示例

    這篇文章主要為大家介紹了Go常用技能日志log包創(chuàng)建使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • golang執(zhí)行命令獲取執(zhí)行結(jié)果狀態(tài)(推薦)

    golang執(zhí)行命令獲取執(zhí)行結(jié)果狀態(tài)(推薦)

    這篇文章主要介紹了golang執(zhí)行命令獲取執(zhí)行結(jié)果狀態(tài)的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2019-11-11
  • golang調(diào)用c實(shí)現(xiàn)的dll接口細(xì)節(jié)分享

    golang調(diào)用c實(shí)現(xiàn)的dll接口細(xì)節(jié)分享

    這篇文章主要介紹了golang調(diào)用c實(shí)現(xiàn)的dll接口細(xì)節(jié)分享,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • Go語言O(shè)RM包中使用worm構(gòu)造查詢條件的實(shí)例詳解

    Go語言O(shè)RM包中使用worm構(gòu)造查詢條件的實(shí)例詳解

    worm是一款方便易用的Go語言O(shè)RM庫。worm支Model方式(持結(jié)構(gòu)體字段映射)、原生SQL以及SQLBuilder三種模式來操作數(shù)據(jù)庫,并且Model方式、原生SQL以及SQLBuilder可混合使用,本文通過一些例子來說明如何使用worm來構(gòu)造查詢條件,感興趣的朋友一起看看吧
    2022-07-07

最新評(píng)論