最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go語言標準輸入輸出庫的基本使用教程

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

fmt

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

輸出

Print

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

  • func Print(a ...interface{}) (n int, err error):直接輸出
  • func Println(a ...interface{}) (n int, err error):和Print使用方法一樣,但是不同與Print的是Println在每次打印完成之后會自動換行,如果使用Print想要換行需要在結(jié)尾加上\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語言")
}

運行結(jié)果:

常用占位符:

  • %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ù)會將內(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("打開文件出錯:", err)
		return
	}
	name := "lee"
	age := 23
	// 向文件中寫入數(shù)據(jù)
	fmt.Fprintf(file, "姓名:%s,年齡:%d \n", name, age)
	// 向控制臺寫入數(shù)據(jù)
	fmt.Fprintf(os.Stdout, "寫入成功")
}

運行結(jié)果:

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

Sprint

Sprint會將傳入的內(nèi)容格式化成一個字符串并返回,和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)
}

運行結(jié)果:

Errorf

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

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

代碼示例:

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

運行結(jié)果:

輸入

在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從標準輸入讀取文本,以空格符或換行符為分隔,將讀取到的內(nèi)容賦值給函數(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)
}

運行結(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)
}

運行結(jié)果:

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

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

運行結(jié)果:

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

總結(jié)

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

相關(guān)文章

  • 一文帶你深入理解Golang中的泛型

    一文帶你深入理解Golang中的泛型

    Go?在泛型方面一直被詬病,因為它在這方面相對比較落后。但是,在?Go?1.18?版本中,泛型已經(jīng)被正式引入,成為了?Go?語言中一個重要的特性。本文將會詳細介紹?Go?泛型的相關(guān)概念,語法和用法,希望能夠幫助大家更好地理解和應用這一特性
    2023-05-05
  • 淺析Go中fasthttp與net/http的性能對比及應用

    淺析Go中fasthttp與net/http的性能對比及應用

    這篇文章主要為大家詳細介紹了Golang中fasthttp的底層實現(xiàn)以及與net/http的區(qū)別,下面就跟隨小編一起來看看fasthttp到底是如何做到性能如此之快的吧
    2024-03-03
  • 一文詳解Go語言io.LimitedReader類型

    一文詳解Go語言io.LimitedReader類型

    這篇文章主要為大家介紹了Go語言io.LimitedReader類型示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • golang常用庫之pkg/errors包第三方錯誤處理包案例詳解

    golang常用庫之pkg/errors包第三方錯誤處理包案例詳解

    這篇文章主要介紹了golang常用庫之pkg/errors包第三方錯誤處理包,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • 深入了解Golang?哈希算法之MD5、SHA-1和SHA-256

    深入了解Golang?哈希算法之MD5、SHA-1和SHA-256

    哈希算法是計算機科學領(lǐng)域中一種重要的技術(shù),它將任意長度的輸入數(shù)據(jù)映射為固定長度的哈希值,在本篇文章中,我們將深入探討Golang中的哈希算法,從多個方面介紹其詳細內(nèi)容,希望通過本文的閱讀你將對?Golang哈希算法有更全面的理解
    2023-05-05
  • Golang內(nèi)存管理之內(nèi)存逃逸分析

    Golang內(nèi)存管理之內(nèi)存逃逸分析

    逃逸分析是指由編譯器決定內(nèi)存分配的位置,不需要程序員指定,這篇文章主要為大家詳細介紹了Golang中內(nèi)存逃逸分析的幾種方法,需要的可以參考一下
    2023-07-07
  • golang 熔斷限流降級實踐

    golang 熔斷限流降級實踐

    本文主要介紹了golang 熔斷限流降級實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-02-02
  • Go語言中的sync包同步原語最新詳解

    Go語言中的sync包同步原語最新詳解

    Go語言在sync包中提供了一套多才多藝的同步機制,以及用于管理對共享資源的并發(fā)訪問的原子操作,了解這些工具并為您的并發(fā)需求選擇合適的工具是編寫高效可靠的并發(fā)Go程序的關(guān)鍵,這篇文章主要介紹了Go語言中的`sync`包同步原語,需要的朋友可以參考下
    2023-12-12
  • 自定義Go?Json的序列化方法譯文

    自定義Go?Json的序列化方法譯文

    這篇文章主要為大家介紹了自定義Go?Json序列化方法譯文,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Go?文件讀取和寫入操作全面講解

    Go?文件讀取和寫入操作全面講解

    這篇文章主要為大家介紹了Go文件的讀取和寫入操作示例的全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11

最新評論

泗阳县| 遵义市| 乌鲁木齐县| 林甸县| 昭平县| 内黄县| 屏东市| 任丘市| 墨竹工卡县| 沅陵县| 岚皋县| 盐城市| 应用必备| 房产| 西吉县| 永安市| 淮南市| 酒泉市| 临城县| 襄城县| 西华县| 招远市| 大洼县| 旌德县| 集安市| 漳浦县| 静安区| 调兵山市| 铜陵市| 扎赉特旗| 大石桥市| 永州市| 万山特区| 武城县| 土默特左旗| 天峻县| 安泽县| 德阳市| 抚远县| 中方县| 拜城县|