網站首頁 編程語言 正文
空結構體和零長數組(兩個復合類型)都僅僅是一個占位符,不占用空間,這里編譯器進行了優(yōu)化,如果結構體或數組的unsafe.sizeof=0則直接返回zerobase。
// 必須用key來初始化結構體
type NoUnkeyedLiterals struct{}
// 不允許結構體比較
type DoNotCompare [0]func()
// 不允許結構體拷貝、值傳遞
type DoNotCopy [0]sync.Mutex
type User struct {
// 必須用key來初始化結構體
NoUnkeyedLiterals
// 不允許結構體比較
DoNotCompare
// 不允許結構體拷貝、值傳遞
DoNotCopy
Age int
Address string
}
func main() {
_ = &User{Age: 21, Address: "beijing"}
fmt.Println(unsafe.Sizeof(NoUnkeyedLiterals{}))
fmt.Printf("%p\n", &DoNotCopy{})
fmt.Printf("%p\n", &NoUnkeyedLiterals{})
fmt.Printf("%p\n", &DoNotCompare{})
}
原文鏈接:https://blog.csdn.net/qq_34562093/article/details/122015607
相關推薦
- 2022-09-04 Golang?實現?RTP音視頻傳輸示例詳解_Golang
- 2022-07-01 Oracle的約束介紹與約束維護_oracle
- 2022-05-22 python中的sys模塊和os模塊_python
- 2024-01-27 ioc,ioc實際運用
- 2022-04-12 Django中ORM基本應用與原理解析_python
- 2022-07-10 Executor 線程池技術詳解
- 2023-08-01 TypeScript 中的字面量類型和聯合類型特性
- 最近更新
-
- 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之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支