轻松获取golang结构体私有变量


举个例子

如果想要获取http.DefaultServeMux里面m怎么办呢?

  1. 可以通过reflect
  2. 内存对齐
type ServeMux struct {
	Mu    sync.RWMutex
	M     map[string]muxEntry
	Es    []muxEntry
	Hosts bool
}

type muxEntry struct {
	H       http.Handler
	Pattern string
}

func GetDefaultServeMux() *ServeMux {
	return (*ServeMux)(unsafe.Pointer(http.DefaultServeMux))
}

http.ServeMux结构体映射出来,并把私有属性转化为公开属性,那么就能轻松访问了


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM