網(wǎng)站首頁 編程語言 正文
fmt
Go語言用于控制文本輸出常用的標準庫是fmt
fmt中主要用于輸出的函數(shù)有:
- Print: 輸出到控制臺,不接受任何格式化操作
- Println: 輸出到控制臺并換行
- Printf: 格式化輸出,只可以打印出格式化的字符串,只可以直接輸出字符串類型的變量(不可以直接輸出別的類型)
- Sprintf: 格式化并返回一個字符串而不帶任何輸出
- Fprintf: 來格式化并輸出到io.Writers而不是os.Stdout
格式化
通過Printf函數(shù)來測試下Go語言里面的字符串格式化:
fmt.Sprintf(格式化樣式, 參數(shù)列表…)
格式樣式: 字符串形式,格式化符號以%開頭,%s字符串格式,%d十進制的整數(shù)格式
參數(shù)列表: 多個參數(shù)以逗號分隔,個數(shù)必須與格式化樣式中的個數(shù)一一對應,否則運行時會報錯
比如:
username := "boy" fmt.Printf("welcome, %s", username)
整數(shù)格式化
占 位 符 | 描 述 |
---|---|
%b | 整數(shù)以二進制方式顯示 |
%o | 整數(shù)以八進制方式顯示 |
%d | 整數(shù)以十進制方式顯示 |
%x | 整數(shù)以十六進制方式顯示 |
%X | 整數(shù)以十六進制、字母大寫方式顯示 |
%c | 相應Unicode碼點所表示的字符 |
%U | Unicode字符,Unicode格式:123,等同于“U+007B” |
func main() { fmt.Printf("%b \n", 123) //1111011 fmt.Printf("%o \n", 123) //173 fmt.Printf("%d \n", 123) //123 fmt.Printf("%x \n", 123) //7b fmt.Printf("%X \n", 123) //7B fmt.Printf("%c \n", 123) //{ fmt.Printf("%U \n", 123) //U+007B }
浮點數(shù)格式化
占 位 符 | 描 述 |
---|---|
%e | 科學計數(shù)法,例如 1.234560e+02 |
%E | 科學計數(shù)法,例如 1.234560E+02 |
%f | 有小數(shù)點而無指數(shù),例如 123.456 |
%F | 等價于%f |
%g | 根據(jù)情況選擇 %e 或 %f 以產(chǎn)生更緊湊的(無末尾的0)輸出 |
%G | 根據(jù)情況選擇 %E 或 %F 以產(chǎn)生更緊湊的(無末尾的0)輸出 |
func main() { fmt.Printf("%e \n", 123.456) //1.234560e+02 fmt.Printf("%E \n", 123.456) //1.234560E+02 fmt.Printf("%f \n", 123.456) //123.456000 fmt.Printf("%F \n", 123.456) //123.456000 fmt.Printf("%g \n", 123.456) //123.456 fmt.Printf("%G \n", 123.456) //123.456 }
布爾類型格式化
占 位 符 | 描 述 |
---|---|
%t | true 或 false |
func main() { fmt.Printf("%t", true) //true }
字符格式化
占 位 符 | 描 述 |
---|---|
%c | 相應Unicode碼點所表示的字符 |
func main() { fmt.Printf("%c", 0x4E2D) //中 }
字符串格式化
占 位 符 | 描 述 |
---|---|
%s | 直接輸出字符串或者[]byte |
%q | 雙引號圍繞的字符串,由Go語法安全地轉(zhuǎn)義 |
%x | 每個字節(jié)用兩字符十六進制數(shù)表示(使用a-f) |
%X | 每個字節(jié)用兩字符十六進制數(shù)表示(使用A-F) |
func main() { fmt.Printf("%s \n", "Hello world") //Hello world fmt.Printf("%q \n", "Hello world") //"Hello world" fmt.Printf("%x \n", "Hello world") //48656c6c6f20776f726c64 fmt.Printf("%X \n", "Hello world") //48656C6C6F20776F726C64 }
指針格式化
占 位 符 | 描 述 |
---|---|
%p | 表示為十六進制,并加上前導的0x |
%#p | 表示為十六進制,沒有前導的0x |
func main() { a := "Hello world" b := &a fmt.Printf("%p \n", b) //0xc000046230 fmt.Printf("%#p \n", b) //c000046230 }
通用占位符
占 位 符 | 描 述 |
---|---|
%v | 值的默認格式 |
%+v | 類似%v,但輸出結(jié)構(gòu)體時會添加字段名 |
%#v | 相應值的Go語法表示 |
%T | 相應值的類型的Go語法表示 |
%% | 百分號,字面上的%,非占位符含義 |
func main() { fmt.Printf("%v \n", "Hello World") //Hello World fmt.Printf("%+v \n", "Hello World") //Hello World fmt.Printf("%#v \n", "Hello World") //"Hello World" fmt.Printf("%T \n", "Hello World") //string fmt.Printf("%%%v \n", "Hello World") //%Hello World }
寬度表示
浮點數(shù)精度控制
寬度通過一個緊跟在百分號后面的十進制數(shù)指定,如果未指定寬度,則表示值時除必需之外不作填充。
精度通過(可選的)寬度后跟點號后跟的十進制數(shù)指定。如果未指定精度,會使用默認精度;如果點號后沒有跟數(shù)字,表示精度為0。舉例如下
func main() { fmt.Printf("|%f|\n", 123.456) //|123.456000| fmt.Printf("|%12f|\n", 123.456) //| 123.456000| fmt.Printf("|%.3f|\n", 123.456) //|123.456| fmt.Printf("|%12.3f|\n", 123.456) //| 123.456| fmt.Printf("|%12.f|\n", 123.456) //| 123| }
字符串長度控制
寬度設置格式:占位符中間加一個數(shù)字, 數(shù)字分正負, +: 右對齊, -: 左對齊
最小寬度:百分號后緊跟十進制數(shù),不夠部分可以選擇補0
最大寬度:小數(shù)點后的十進制數(shù),超出的部分會被截斷
func main() { fmt.Printf("|%s|\n", "123.456") //|123.456| fmt.Printf("|%12s|\n", "123.456") //| 123.456| fmt.Printf("|%-12s|\n", "123.456") //|123.456 | fmt.Printf("|%012s|\n", "123.456") //|00000123.456| fmt.Printf("|%.5s|\n", "123.456") //|123.4| }
原文鏈接:https://blog.csdn.net/shn111/article/details/127877743
相關推薦
- 2022-06-12 詳解Go語言中的數(shù)據(jù)類型及類型轉(zhuǎn)換_Golang
- 2022-05-27 Entity?Framework?Core相關包的概念介紹與安裝_實用技巧
- 2022-12-09 Android入門之ProgressBar的使用教程_Android
- 2022-06-14 C#委托與冒泡排序?qū)嵗齙C#教程
- 2022-05-08 Python函數(shù)命名空間和作用域(Local與Global)_python
- 2022-07-09 Jquery操作DOM元素方法詳解_jquery
- 2022-07-03 kali下對Docker的詳細安裝教程_docker
- 2022-06-25 PyTorch模型保存與加載實例詳解_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支