(*Type)(nil)有什麼特殊含義嗎?

judas發表於2018-03-27

看 proto 生成的程式碼裡註冊 struct 的有這麼一段

func init() {
    proto.RegisterType((*LoremRequest)(nil), "pb.LoremRequest")
    proto.RegisterType((*LoremResponse)(nil), "pb.LoremResponse")
}

打出來然後用 sizeof 看了下和 &LoremRequest{}效果一樣的,不太明白,這種寫法有什麼特殊含義嗎?


經大家提醒,(*LoremRequest)(nil) 這種寫法是不會分配記憶體的,並且嘗試向他的欄位賦值會報錯,而&LoremRequest{}是會分配記憶體並且可以被賦值的

更多原創文章乾貨分享,請關注公眾號
  • (*Type)(nil)有什麼特殊含義嗎?
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章