【Go語言】Go語言的占位符

Go語言的占位符

Golang 的字符串占位符在 fmt 包的各種打印函數中使用,如 fmt.Printffmt.Sprintf

變量值與類型的打印

%v: 打印變量的值

  • %v 會根據變量的類型選擇合適的格式進行打印。
  • 對于結構體,%v 會打印出結構體的字段。
  • 對于指針類型,會打印出指針指向的值。

%T: 打印變量的類型

  • %T 會打印出變量的具體類型。
x := 42
y := "hello"
z := 3.14
fmt.Printf("x: %v, 類型: %T\n", x, x)
fmt.Printf("y: %v, 類型: %T\n", y, y)
fmt.Printf("z: %v, 類型: %T\n", z, z)

運行如上代碼,輸出

x: 42, 類型: int
y: hello, 類型: string
z: 3.14, 類型: float64

整數

%d 十進制表示
%b 二進制表示
%o 八進制表示
%x%X 十六進制表示(%x 小寫字母、%X 大寫字母)

n := 42
fmt.Printf("十進制: %d\n", n)
fmt.Printf("二進制: %b\n", n)
fmt.Printf("八進制: %o\n", n)
fmt.Printf("十六進制(小寫): %x\n", n)
fmt.Printf("十六進制(大寫): %X\n", n)

運行如上代碼,輸出

十進制: 42
二進制: 101010
八進制: 52
十六進制(小寫): 2a
十六進制(大寫): 2A

浮點數和整數

%f 有小數點的十進制表示
%e%E 科學計數法
%g, %G: 根據情況選擇 %f%e (%g 使用小寫字母,%G 使用大寫字母)

f := 3.1415926
fmt.Printf("浮點數: %f\n", f)
fmt.Printf("科學計數法(小寫): %e\n", f)
fmt.Printf("科學計數法(大寫): %E\n", f)

運行如上代碼,輸出

浮點數: 3.141593
科學計數法(小寫): 3.141593e+00
科學計數法(大寫): 3.141593E+00

字符串和字節切片

%s: 直接輸出字符串或字節切片
%q: 使用雙引號括起來的字符串
%x, %X: 每個字節用兩字符的十六進制表示

s := "hello"
fmt.Printf("字符串: %s\n", s)
fmt.Printf("帶引號的字符串: %q\n", s)
fmt.Printf("每個字節用十六進制表示(小寫): %x\n", s)
fmt.Printf("每個字節用十六進制表示(大寫): %X\n", s)

運行如上代碼,輸出

字符串: hello
帶引號的字符串: "hello"
每個字節用十六進制表示(小寫): 68656c6c6f
每個字節用十六進制表示(大寫): 68656C6C6F

指針

%p: 指針地址

t := 100
p := &t
fmt.Printf("指針地址: %p\n", p)

運行如上代碼,輸出

指針地址: 0xc00001a128

布爾值

%t: 布爾值(truefalse

b := true
fmt.Printf("布爾值: %t\n", b)

運行如上代碼,輸出

布爾值: true

其他

%%: 字面上的百分號(%
%U: Unicode 格式:U+1234
%c: 字符(對應 Unicode 碼點)
%v, %+v, %#v: 通用的占位符
%v: 值的默認格式表示
%+v: 類似 %v,但會打印結構體的字段名
%#v: 值的 Go 語言語法表示

fmt.Printf("百分號: 100%%\n")// 定義如下 Unicode 字符
var char1 rune = 'A'
var char2 rune = '中'
var char3 rune = '😊'// 使用 %U 格式化輸出 Unicode 碼點
fmt.Printf("char1: %c Unicode: %U\n", char1, char1)
fmt.Printf("char2: %c Unicode: %U\n", char2, char2)
fmt.Printf("char3: %c Unicode: %U\n", char3, char3)type Person struct {Name stringAge  int
}person := Person{Name: "Alice",Age:  30,
}fmt.Printf("值的默認格式表示: %v\n", person)
fmt.Printf("值帶結構體的字段名表示: %+v\n", person)
fmt.Printf("值的Go語言語法表示: %#v\n", person)

運行如上代碼,輸出

百分號: 100%
char1: A Unicode: U+0041
char2: 中 Unicode: U+4E2D
char3: 😊 Unicode: U+1F60A
值的默認格式表示: {Alice 30}
值帶結構體的字段名表示: {Name:Alice Age:30}
值的Go語言語法表示: main.Person{Name:"Alice", Age:30}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/42711.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/42711.shtml
英文地址,請注明出處:http://en.pswp.cn/web/42711.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux 網絡--TCP協議收包流程(NAPI機制)

Linux 網絡--TCP協議收包流程(NAPI機制) 平臺環境簡介:宿主機: ubuntu18.04Linux內核源碼版本: Linux-4.15網卡驅動: Intel e1000 (ubuntu 虛擬機默認網卡驅動)協議:TCP協議,本文分析收包過程 本…

緩存新境界:Eureka中服務的分布式緩存實現策略

緩存新境界:Eureka中服務的分布式緩存實現策略 引言 在微服務架構中,服務間的通信和數據交換頻繁,引入分布式緩存可以顯著提高系統性能和響應速度。Eureka作為Netflix開源的服務發現框架,雖然本身不提供緩存機制,但可…

【線程狀態-2】

1、線程禮讓 (1)禮讓線程,讓當前正在執行的線程暫停,但不阻塞 (2)將線程從運行狀態轉為就緒狀態 (3)讓cpu重新調度,禮讓不一定成功!看cpu心情 package st…

單對以太網:工業4.0時代的通信革命

單對以太網連接器概述 單對以太網(Single Pair Ethernet,簡稱SPE)是一種新興的以太網技術,它通過一對雙絞線實現數據傳輸,支持PoDL(Power over Data Line)技術,為終端設備提供電力供…

【AI工具介紹】— webkit簡介

目錄 一、起源與發展 二、核心組件與功能 三、特性與優勢 四、應用與影響 五、結論 一、起源與發展 WebKit起源于蘋果公司,最初是為了開發Safari瀏覽器而創建的。WebKit項目的起源可以追溯到蘋果公司在2001年推出基于Unix的操作系統Mac OS X時,對瀏…

windows JDK11 與JDK1.8自動切換,以及切換后失效的問題

1.windows安裝不同環境的jdk 2.切換jdk 3.切換失敗 原因:這是因為當我們安裝并配置好JDK11之后它會自動生成一個環境變量(此變量我們看不到),此環境變量優先級較高,導致我們在切換回JDK8后系統會先讀取到JDK11生成的…

Java項目:基于SSM框架實現的中小型企業財務管理系統【ssm+B/S架構+源碼+數據庫+答辯PPT+開題報告+畢業論文】

一、項目簡介 本項目是一套基于SSM框架實現的中小型企業財務管理系統 包含:項目源碼、數據庫腳本等,該項目附帶全部源碼可作為畢設使用。 項目都經過嚴格調試,eclipse或者idea 確保可以運行! 該系統功能完善、界面美觀、操作簡單…

Spark實現電商消費者畫像案例

作者/朱季謙 故事得從這一張圖開始說起—— 可憐的打工人準備下班時,突然收到領導發來的一份電商消費者樣本數據,數據內容是這樣的—— 消費者姓名|年齡|性別|薪資|消費偏好|消費領域&#x…

CentOS 7:停止更新后如何下載軟件?

引言 CentOS 7 是一個廣受歡迎的 Linux 發行版,它為企業和開發者提供了一個穩定、安全、且免費的操作系統環境。然而,隨著時間的推移,CentOS 7 的官方支持已經進入了維護階段,這意味著它將不再收到常規的更新和新功能,…

圖像類別生成數字標簽

類別 COCO 2017數據集分類標簽。coco2017數據集下載。 cls [background, person, bicycle, car, motorcycle, airplane, bus,train, truck, boat, traffic light, fire hydrant,stop sign, parking meter, bench, bird, cat, dog,horse, sheep, cow, elephant, bear, zebra,…

2024建博會|博聯AI大模型全屋智能引領智能體驗新紀元

7月8日,2024中國建博會(廣州)在廣交會展館及保利世貿博覽館盛大啟幕。BroadLink博聯智能攜AI大模型全屋智能以及AI商業照明解決方案驚喜亮相,全方位展示AI大模型在智能家居領域的前沿應用成果。 本次建博會,博聯智能帶…

java.lang.annotation包介紹

java.lang.annotation 包是 Java 標準庫中的一個核心包,專門用于定義和支持 Java 注解(Annotation)。該包中包含了一些核心的接口和枚舉類型,用于定義和控制注解在 Java 程序中的行為和使用方式。 主要的類和接口 Annotation 接口 java.lang.annotation.Annotation 所有注…

NPDP含金量高嗎?什么人適合學習NPDP?

PMP考完了,最近在考NPDP,這也是一個有意思的證書,含金量還不錯,非常適合想轉型和升級的人來考。 一、NPDP是什么 NPDP其實就是產品經理國際資格認證(New Product Development Professional),是…

C++慣用法: 通過std::decltype來SFINAE掉表達式

目錄 1.什么是SFINAE 2.SFINAE(替換失敗不是錯誤) 3.通過std::decltype來SFINAE掉表達式 1.什么是SFINAE SFINAE 技術,即匹配失敗不是錯誤,英文Substitution Failure Is Not An Error,其作用是當我們在進行模板特化的時候,會去…

嵌入式c語言——指針加修飾符

指針變量可以用修飾符來修飾

量化交易常用名詞介紹(七)——模塊篇

目錄 七、模塊篇 1. NumPy 2. pandas 3. matplotlib 4. scikit-learn 5. TensorFlow 6. TA-Lib 7. statsmodels 8. Backtrader 9. PyPortfolioOpt 10. Zipline 七、模塊篇 在量化交易中,Python 及其豐富的庫生態系統提供了強大的支持。以…

Redis部署和基礎命令

一、Redis基本概念 1.1 Redis簡介 Redis(遠程字典服務器) 是一個開源的、使用 C 語言編寫的 NoSQL 數據庫。 Redis 基于內存運行并支持持久化,采用key-value(鍵值對)的存儲形式,是目前分布式架構中不可或…

python爬蟲之scrapy基于管道持久化存儲操作

python爬蟲之scrapy基于管道持久化存儲操作 本文基于python爬蟲之基于終端指令的持久化存儲和python爬蟲之數據解析操作而寫 scrapy持久化存儲 基于管道: 編碼流程: 1、數據解析 2、在item類中定義相關屬性 3、將解析的數據封裝存儲到item類型的對象 4、…

Linux內核 -- 內存管理之scatterlist結構使用

Linux Kernel Scatterlist 使用指南 1. 簡介 scatterlist 結構在 Linux 內核中主要用于 DMA(直接內存訪問)操作中的內存管理。它允許將不連續的物理內存片段表示為一個邏輯上的連續塊,從而使 DMA 操作可以高效地處理這些不連續的內存片段。…

【問題記錄】VsCode中以管理員權限運行Powershell

問題展示 今天在嘗試運行nodemon命令的時候出問題,顯示沒法識別,經過分析發現是管理員權限的問題,由于是在vscode里面進行開發,因此特此進行配置。 方法一 直接在vscode命令行中輸入如下命令: Start-Process powers…