成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

怎么應(yīng)用Golang的標(biāo)準(zhǔn)庫fmt-創(chuàng)新互聯(lián)

1.fmt

fmt包實(shí)現(xiàn)了類似C語言printf和scanf的格式化I/O。主要分為向外輸出內(nèi)容和獲取輸入內(nèi)容兩大部分。

1.1向外輸出

1.1.1Print

Print系列函數(shù)會將內(nèi)容輸出到系統(tǒng)的標(biāo)準(zhǔn)輸出,區(qū)別在于
Print函數(shù)直接輸出內(nèi)容,
Printf函數(shù)支持格式化輸出字符串,
Println函數(shù)會在輸出內(nèi)容的結(jié)尾添加一個(gè)換行符。

func Print(a ...interface{}) (n int, err error)
func Printf(format string, a ...interface{}) (n int, err error)
func Println(a ...interface{}) (n int, err error)
package main

import "fmt"

func main()  {
   fmt.Print("Print輸出信息!")
   name := "vita"
   fmt.Printf("Printf輸出name:%s\n",name)
   fmt.Println("Println輸出信息")
}

結(jié)果:
Print輸出信息!Printf輸出name:vita
Println輸出信息

Process finished with exit code 0

1.1.2Fprint

Fprint系列函數(shù)會將內(nèi)容輸出到一個(gè)io.Writer接口類型的變量w中,我們通常用這個(gè)函數(shù)往文件中寫入內(nèi)容。
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)
package main

import (
   "fmt"
   "os"
)

func main()  {
   //寫入到標(biāo)準(zhǔn)輸出
   fmt.Fprint(os.Stdout,"Fprint向標(biāo)準(zhǔn)輸出寫入內(nèi)容")
   fmt.Fprintln(os.Stdout,"Fprintln向標(biāo)準(zhǔn)輸出寫入內(nèi)容")
   name := "vita"
   fmt.Fprintf(os.Stdout,"Fprintf向標(biāo)準(zhǔn)輸出寫入內(nèi)容name:%s",name)

   fileObj,err := os.OpenFile("./file",os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
   if err != nil{
     fmt.Println("打開文件出錯(cuò),err:",err)
   }
   //寫入到文件中
   fmt.Fprint(fileObj,"Fprint向文件中寫入內(nèi)容")
   fmt.Fprintln(fileObj,"Fprintln向文件中寫入內(nèi)容")
   fmt.Fprintf(fileObj,"Fprintf向文件中寫入內(nèi)容,name:%s",name)
}

結(jié)果:
Fprint向標(biāo)準(zhǔn)輸出寫入內(nèi)容Fprintln向標(biāo)準(zhǔn)輸出寫入內(nèi)容
Fprintf向標(biāo)準(zhǔn)輸出寫入內(nèi)容name:vita
Process finished with exit code 0

怎么應(yīng)用Golang的標(biāo)準(zhǔn)庫fmt

創(chuàng)新互聯(lián)建站是一家專注于成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)與策劃設(shè)計(jì),薩迦網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:薩迦等地區(qū)。薩迦做網(wǎng)站價(jià)格咨詢:028-86922220

1.1.3Sprint

Sprint系列函數(shù)會把傳入的數(shù)據(jù)生成并返回一個(gè)字符串。
func Sprint(a ...interface{}) string
func Sprintf(format string, a ...interface{}) string
func Sprintln(a ...interface{}) string
package main

import "fmt"

func main()  {
   s1 := fmt.Sprint("Sprint")
   fmt.Println(s1)
   s2 := fmt.Sprintln("Sprintln")
   fmt.Println(s2)
   s3 := fmt.Sprintf("Sprintf,s1:%s",s1)
   fmt.Println(s3)
}

結(jié)果:
Sprint
Sprintln

Sprintf,s1:Sprint

Process finished with exit code 0

1.1.4Errorf

Errorf函數(shù)根據(jù)format參數(shù)生成格式化字符串并返回一個(gè)包含改字符串的錯(cuò)誤。
func Errorf(format string, a ...interface{}) error
通常使用該方法定義錯(cuò)誤類型。
package main

import "fmt"

func main()  {
   name := "vita"
   err := fmt.Errorf("%s創(chuàng)建了一個(gè)錯(cuò)誤",name)
   fmt.Printf("value:%v type:%T",err,err)
}

結(jié)果:
value:vita創(chuàng)建了一個(gè)錯(cuò)誤 type:*errors.errorString
Process finished with exit code 0

1.1.5格式化占位符

*printf系列函數(shù)都支持format格式化參數(shù),在這個(gè)我們按照占位符將被替換的變量類型劃分,方便查詢和記憶。
1.1.5.1通用占位符

怎么應(yīng)用Golang的標(biāo)準(zhǔn)庫fmt

package main

import "fmt"

func main()  {
   fmt.Printf("v:%v\n", 100)
   fmt.Printf("v:%v\n", false)
   o := struct{ name string }{"小王子"}
   fmt.Printf("v:%v\n", o)
   fmt.Printf("+v:%+v\n", o)
   fmt.Printf("#v:%#v\n", o)
   fmt.Printf("T:%T\n", o)
   fmt.Printf("100%%\n")
}

結(jié)果:
v:100
v:false
v:{小王子}
+v:{name:小王子}
#v:struct { name string }{name:"小王子"}
T:struct { name string }
100%

Process finished with exit code 0
1.1.5.2布爾型

怎么應(yīng)用Golang的標(biāo)準(zhǔn)庫fmt

package main

import "fmt"

func main()  {
   fmt.Printf("t:%t\n", false)
   fmt.Printf("v:%v\n", false)

}

結(jié)果:
t:false
v:false

Process finished with exit code 0
1.1.5.3整型

怎么應(yīng)用Golang的標(biāo)準(zhǔn)庫fmt

package main

import "fmt"

func main()  {
   n := 65
   fmt.Printf("%b\n", n)
   fmt.Printf("%c\n", n)
   fmt.Printf("%d\n", n)
   fmt.Printf("%o\n", n)
   fmt.Printf("%x\n", n)
   fmt.Printf("%X\n", n)
}

結(jié)果:
1000001
A
65
101
41
41

Process finished with exit code 0
1.1.5.4浮點(diǎn)數(shù)與復(fù)數(shù)

怎么應(yīng)用Golang的標(biāo)準(zhǔn)庫fmt

package main

import "fmt"

func main()  {
   f := 12.34
   fmt.Printf("b:%b\n", f)
   fmt.Printf("e:%e\n", f)
   fmt.Printf("E:%E\n", f)
   fmt.Printf("f:%f\n", f)
   fmt.Printf("F:%F\n", f)
   fmt.Printf("g:%g\n", f)
   fmt.Printf("G:%G\n", f)
}

結(jié)果:
b:6946802425218990p-49
e:1.234000e+01
E:1.234000E+01
f:12.340000
F:12.340000
g:12.34
G:12.34

Process finished with exit code 0
1.1.5.5字符串和[]byte

怎么應(yīng)用Golang的標(biāo)準(zhǔn)庫fmt

package main

import "fmt"

func main()  {
   s := "小王子"
   fmt.Printf("%s\n", s)
   fmt.Printf("%q\n", s)
   fmt.Printf("%x\n", s)
   fmt.Printf("%X\n", s)
}

結(jié)果:
小王子
"小王子"
e5b08fe78e8be5ad90
E5B08FE78E8BE5AD90

Process finished with exit code 0
1.1.5.6指針

怎么應(yīng)用Golang的標(biāo)準(zhǔn)庫fmt

package main

import "fmt"

func main()  {
   a := 10
   fmt.Printf("%p\n", &a)
   fmt.Printf("%#p\n", &a)
}

結(jié)果:
0xc00007e000
c00007e000

Process finished with exit code 0
1.1.5.7寬度標(biāo)識符
寬度通過一個(gè)緊跟在百分號后面的十進(jìn)制數(shù)指定,如果未指定寬度,則表示值時(shí)除必需之外不作填充。精度通過(可選的)寬度后跟點(diǎn)號后跟的十進(jìn)制數(shù)指定。如果未指定精度,會使用默認(rèn)精度;如果點(diǎn)號后沒有跟數(shù)字,表示精度為0。舉例如下

怎么應(yīng)用Golang的標(biāo)準(zhǔn)庫fmt

package main

import "fmt"

func main()  {
   n := 12.34
   fmt.Printf("%f\n", n)
   fmt.Printf("%9f\n", n)
   fmt.Printf("%.2f\n", n)
   fmt.Printf("%9.2f\n", n)
   fmt.Printf("%9.f\n", n)
}

結(jié)果:
12.340000
12.340000
12.34
   12.34
    12

Process finished with exit code 0
1.1.5.8其他flag

怎么應(yīng)用Golang的標(biāo)準(zhǔn)庫fmt

package main

import "fmt"

func main()  {
   s := "小王子"
   fmt.Printf("%s\n", s)
   fmt.Printf("%5s\n", s)
   fmt.Printf("%-5s\n", s)
   fmt.Printf("%5.7s\n", s)
   fmt.Printf("%-5.7s\n", s)
   fmt.Printf("%5.2s\n", s)
   fmt.Printf("%05s\n", s)
}

結(jié)果:
小王子
  小王子
小王子  
  小王子
小王子  
  小王
00小王子

Process finished with exit code 0

1.2獲取輸入

1.2.1fmt.Scan

func Scan(a ...interface{}) (n int, err error)
Scan從標(biāo)準(zhǔn)輸入掃描文本,讀取由"空白符"分隔的值保存到傳遞給本函數(shù)的參數(shù)中,換行符視為空白符。
本函數(shù)返回成功掃描的數(shù)據(jù)個(gè)數(shù)和遇到的任何錯(cuò)誤。如果讀取的數(shù)據(jù)個(gè)數(shù)比提供的參數(shù)少,會返回一個(gè)錯(cuò)誤報(bào)告原因。
package main

import "fmt"

func main()  {
   var (
     name string
     age int
     married bool
   )
   fmt.Scan(&name,&age,&married)
   fmt.Printf("掃描結(jié)果 name:%s age:%d married:%t \n", name, age, married)
}

在終端輸入name,age,married對應(yīng)的值
lili 23 true
掃描結(jié)果 name:lili age:23 married:true 

Process finished with exit code 0

1.2.2fmt.Scanf

func Scanf(format string, a ...interface{}) (n int, err error)
Scanf 從標(biāo)準(zhǔn)輸入掃描文本,根據(jù)format參數(shù)指定的格式去讀取由空白符分隔的值保存到本函數(shù)的參數(shù)中。
本函數(shù)返回成功掃描的數(shù)據(jù)個(gè)數(shù)和遇到的任何錯(cuò)誤。
注意:
Scanf不同于Scan,Scanf為輸入數(shù)據(jù)制定了具體的輸入內(nèi)容格式,只有按照格式輸入數(shù)據(jù),才會掃描成功并存入變量中。
package main

import "fmt"

func main() {
   var (
     name   string
     age   int
     married bool
   )
   fmt.Scanf("1:%s 2:%d 3:%t", &name, &age, &married)
   fmt.Printf("掃描結(jié)果 name:%s age:%d married:%t \n", name, age, married)
}

結(jié)果:
1:lili 2:27 3:true
掃描結(jié)果 name: age:0 married:false 

Process finished with exit code 0

1.2.3fmt.Scanln

func Scanln(a ...interface{}) (n int, err error)
Scanln類似Scan,它在遇到換行時(shí)才停止掃描。最后一個(gè)數(shù)據(jù)后面必須有換行或者到達(dá)結(jié)束位置。
本函數(shù)返回成功掃描的數(shù)據(jù)個(gè)數(shù)和遇到的任何錯(cuò)誤。
package main

import "fmt"

func main() {
   var (
     name   string
     age   int
     married bool
   )
   fmt.Scanln( &name, &age, &married)
   fmt.Printf("掃描結(jié)果 name:%s age:%d married:%t \n", name, age, married)
}

結(jié)果:
lili 27 true
掃描結(jié)果 name:lili age:27 married:true 

Process finished with exit code 0

1.2.4bufio.NewReader

有時(shí)候,我們想完整獲取輸入的內(nèi)容,而輸入的內(nèi)容可能包含空格,這種情況下可以使用bufio包來實(shí)現(xiàn)。
package main

import (
   "bufio"
   "fmt"
   "os"
   "strings"
)

func main() {
   reader := bufio.NewReader(os.Stdin) //從標(biāo)準(zhǔn)輸入生成讀對象
   fmt.Print("請輸入內(nèi)容:")
   text,_ := reader.ReadString('\n') //讀到換行
   text = strings.TrimSpace(text)
   fmt.Printf("%#v\n",text)
}

結(jié)果:
請輸入內(nèi)容:ww qq aa
"ww qq aa"

Process finished with exit code 0

1.2.5Fscan系列

這幾個(gè)函數(shù)功能分別類似于fmt.Scan、fmt.Scanf、fmt.Scanln三個(gè)函數(shù),只不過它們不是從標(biāo)準(zhǔn)輸入中讀取數(shù)據(jù)而是從io.Reader中讀取數(shù)據(jù)。

func Fscan(r io.Reader, a ...interface{}) (n int, err error)
func Fscanln(r io.Reader, a ...interface{}) (n int, err error)
func Fscanf(r io.Reader, format string, a ...interface{}) (n int, err error)
package main

import (
   "fmt"
   "os"
)

func main() {
   var (
     name string
     age int
   )
   fileObj, err := os.OpenFile("./xx.txt", os.O_CREATE|os.O_RDONLY|os.O_APPEND, 0644)
   if err != nil {
     fmt.Println("打開文件出錯(cuò),err:", err)
     return
   }
   fmt.Fscan(fileObj,&name,&age)
   fmt.Println(name,age)
}

結(jié)果:
lili 27

Process finished with exit code 0

怎么應(yīng)用Golang的標(biāo)準(zhǔn)庫fmt

1.2.6Sscan系列

這幾個(gè)函數(shù)功能分別類似于fmt.Scan、fmt.Scanf、fmt.Scanln三個(gè)函數(shù),只不過它們不是從標(biāo)準(zhǔn)輸入中讀取數(shù)據(jù)而是從指定字符串中讀取數(shù)據(jù)。

func Sscan(str string, a ...interface{}) (n int, err error)
func Sscanln(str string, a ...interface{}) (n int, err error)
func Sscanf(str string, format string, a ...interface{}) (n int, err error)
package main

import "fmt"

func main() {
   var (
     name string
     age int
   )
   fmt.Sscan("lili 27",&name,&age)
   fmt.Println(name,age)
}

結(jié)果:
lili 27

Process finished with exit code 0

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)頁題目:怎么應(yīng)用Golang的標(biāo)準(zhǔn)庫fmt-創(chuàng)新互聯(lián)
鏈接分享:http://jinyejixie.com/article8/jgdop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、移動網(wǎng)站建設(shè)、網(wǎng)站改版、全網(wǎng)營銷推廣、Google、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
福泉市| 五原县| 峡江县| 延寿县| 高陵县| 金秀| 定安县| 方山县| 青浦区| 防城港市| 灵武市| 体育| 蒙自县| 宁乡县| 漳州市| 页游| 天气| 宣汉县| 扬州市| 兰州市| 潮州市| 汉沽区| 山东省| 阿坝| 隆昌县| 瓦房店市| 凤翔县| 本溪市| 来安县| 社旗县| 定安县| 始兴县| 聂拉木县| 迁西县| 和顺县| 五大连池市| 佛教| 卢龙县| 兴化市| 海安县| 南投市|