第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

【學(xué)習打卡】第8天 深入Go底層原理,重寫Redis中間件實戰(zhàn) 第4章

標簽:
Go

课程名称:深入Go底层原理,重写Redis中间件实战

课程章节:什么变量的大小是 0 字节

主讲老师:Moody

课程内容:

今天学习的内容包括:

基本类型的字节数

空结构体

课程收获:

基本类型的字节数

  • int 大小跟随系统字长,64位系统是8个字节(即64位)
  • 指针的大小也是系统字长,64位系统是8个字节(即64位)

空结构体

  • 空结构体的地址均相同(不被包含在其他结构体中时)
  • 空结构体主要是为了节约内存,比如:
    • 新建一个只用于控制阻塞的chan,make(chan struct{}),这样可以不浪费任何内存。
    • 新建一个只有键的map,用来快速判断键是否存在,make(map[string]struct{})。
type People struct {
}

type Student struct {
	People
	age int
}

func main() {
	i := 100
	fmt.Printf("%d %p\n", unsafe.Sizeof(i), &i)

	a := People{}
	fmt.Printf("%d %p\n", unsafe.Sizeof(a), &a)

	c := Student{}
	fmt.Printf("%d %p\n", unsafe.Sizeof(c), &c)
	fmt.Printf("%d %p\n", unsafe.Sizeof(c.People), &c.People)
}

输出结果:
8 0xc000014078
0 0x547438           # 空结构体的内存长度为0,起始地址指向zerobase(runtime中定义的零地址)
8 0xc000014098
0 0xc000014098       # 子空结构体内存长度为0,起始地址指向父结构体的起始地址

點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
PHP開發(fā)工程師
手記
粉絲
1
獲贊與收藏
0

關(guān)注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習,寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消