Go語言fmt包Printf方法

2021-09-02 16:28:49 字數 3096 閱讀 3767

1、print和println方法

/*

fmt包含有格式化i/o函式,類似於c語言的printf和scanf。格式字串的規則**於c,但更簡單一些。

*/ //print輸出給定的字串,如果是數值或字元,則輸出對應的十進位制表示

fmt.print("a", "\n") //輸出a

fmt.print("a", "b", "\n") //輸出ab

fmt.print('a', "\n") //輸出97

fmt.print('a', 'b', "\n") //輸出97 98 字元之間會輸出乙個空格

fmt.print(12, "\n") //輸出12

fmt.print(12, 13, "\n") //輸出12 13 數值之間輸出乙個空格

//println 自動在結尾輸出\n,兩個數值之間自動加空格,每項之間自動加空格

fmt.println("---------------------------------")

fmt.println("a") //輸出a

fmt.println("a", "b") //輸出a b

fmt.println('a') //輸出97

fmt.println('a', 'b') //輸出97 98

fmt.println(12) //輸出12

fmt.println(12, 13) //輸出12 13

fmt.println("\n", 12, 13) //輸出 12 13 12之前有乙個空格

2、以下為printf方法的格式說明:

# 定義示例型別和變數type humanstructvar people =human

普通佔位符佔位符說明舉例輸出%v 相應值的預設格式。printf("%v",people),%+v 列印結構體時,會新增欄位名printf("%+v",people)%#v 相應值的go語法表示 printf("#v", people) main.human%t 相應值的型別的go語法表示printf("%t",people)main.human%%字面上的百分號,並非值的佔位符printf("%%")%

布林佔位符佔位符說明舉例輸出%t true或false。printf("%t",true)true

整數佔位符佔位符說明舉例輸出%b 二進位制表示printf("%b",5)101%c 相應unicode碼點所表示的字元printf("%c",0x4e2d)中%d 十進位制表示printf("%d",0x12)18%o 八進位制表示printf("%d",10)12%q 單引號圍繞的字元字面值,由go語法安全地轉義printf("%q",0x4e2d)'中'%x 十六進製制表示,字母形式為小寫a-f printf("%x",13)d %x 十六進製制表示,字母形式為大寫a-f printf("%x",13)d %u unicode格式:u+1234,等同於"u+%04x"printf("%u",0x4e2d)u+4e2d

浮點數和複數的組成部分(實部和虛部)佔位符說明舉例輸出%b 無小數部分的,指數為二的冪的科學計數法,與strconv.formatfloat的'b'轉換格式一致。例如-123456p-78%e 科學計數法,例如-1234.456e+78printf("%e",10.2)1.020000e+01%e 科學計數法,例如-1234.456e+78printf("%e",10.2)1.020000e+01%f 有小數點而無指數,例如123.456printf("%f",10.2)10.200000%g 根據情況選擇%e 或%f 以產生更緊湊的(無末尾的0)輸出printf("%g",10.20)10.2%g 根據情況選擇%e 或%f 以產生更緊湊的(無末尾的0)輸出printf("%g",10.20+2i)(10.2+2i)

字串與位元組切片佔位符說明舉例輸出%s 輸出字串表示(string型別或byte)printf("%s",byte("go語言"))go語言%q 雙引號圍繞的字串,由go語法安全地轉義printf("%q","go語言")"go語言"%x 十六進製制,小寫字母,每位元組兩個字元printf("%x","golang")676f6c616e67%x 十六進製制,大寫字母,每位元組兩個字元printf("%x","golang")676f6c616e67

指標佔位符說明舉例輸出%p 十六進製制表示,字首0xprintf("%p",&people)0x4f57f0

其它標記佔位符說明舉例輸出+總列印數值的正負號;對於%q(%+q)保證只輸出ascii編碼的字元。printf("%+q","中文")"\u4e2d\u6587"-在右側而非左側填充空格(左對齊該區域)# 備用格式:為八進位制新增前導 0(%#o) printf("%#u", '中') u+4e2d為十六進製制新增前導0x(%#x)或 0x(%#x),為 %p(%#p)去掉前導 0x;如果可能的話,%q(%#q)會列印原始 (即反引號圍繞的)字串;如果是可列印字元,%u(%#u)會寫出該字元的unicode編碼形式(如字元x 會被列印成u+0078'x')。' '(空格)為數值中省略的正負號留出空白(%d);以十六進製制(%x,%x)列印字串或切片時,在位元組之間用空格隔開0填充前導的0而非空格;對於數字,這會將填充移到正負號之後

golang沒有 '%u' 點位符,若整數為無符號型別,預設就會被列印成無符號的。

寬度與精度的控制格式以unicode碼點為單位。寬度為該數值占用區域的最小寬度;精度為小數點之後的位數。

運算元的型別為int時,寬度與精度都可用字元 '*' 表示。

對於 %g/%g 而言,精度為所有數字的總數,例如:123.45,%.4g 會列印123.5,(而 %6.2f 會列印123.45)。

%e 和 %f 的預設精度為6

對大多數的數值型別而言,寬度為輸出的最小字元數,如果必要的話會為已格式化的形式填充空格。

而以字串型別,精度為輸出的最大字元數,如果必要的話會直接截斷。

GO 語言 fmt 包函式總結

go 語言標準庫中的 fmt 包提供了列印函式將資料以字串形式輸出到控制台 檔案 其他滿足 io.writer 介面的至以及其他字串中 語法含義 fmt.errorf format,args 返回乙個包含所給的的格式胡字串以及 args 引數的錯誤值 fmt.fprint writer,args 按...

Go語言從入門到精通 精華篇 fmt包詳解

import fmt 軟體包fmt實現了格式化的i o,其功能類似於c的printf和scanf。格式 動詞 來自c,但更簡單。已有示例 type person struct通用 佔位符說明 示例輸出 v 相應值的預設格式 printf v person v類似 v,但輸出結構體時會新增欄位名式 p...

Go語言常用標準庫之fmt

fmt包實現了類似c語言printf和scanf的格式化i o。主要分為向外輸出內容和獲取輸入內容兩大部分。1 print系列 輸出乙個字串 fmt.print hello go 格式化輸出乙個字串 name codedoc fmt.printf hello s name 輸出乙個字串並換行 fmt...