Go 中 make 與 new 的區別是什麼?
我理解的是:
- new 會初始化值型別(如果 int,string,struct ),並返回指向該型別值的指標
- ( map/slice/chan )使用 make,make 返回的是型別本身,引用型別沒必要返回他們的指標
但是網上經常出現這樣的解釋:
- new 是用來分配記憶體的內建函式, 但與其它語言中的同名函式不同,它不會 “初始化記憶體”,只會將 “記憶體置零"
- make 只用於建立切片、對映和通道,並返回型別為 T (而非 *T )的一個已初始化 (而非置零)的值
我不明白,初始化記憶體,記憶體置零有什麼區別,記憶體都置零了,難道還沒有初始化記憶體嗎
更多原創文章乾貨分享,請關注公眾號
- 加微信實戰群請加微信(註明:實戰群):gocnio
相關文章
- 面試官:Golang 的 new 與make 區別是什麼?面試Golang
- go語言中make和new有什麼作用以及區別?Go
- Go 語言 new 和 make 關鍵字的區別Go
- Golang make和new的區別Golang
- Python語言中__init__與__new__的區別是什麼?Python
- 深入理解 Go 中的 new() 和 make() 函式Go函式
- Python中/與//的區別是什麼?其如何使用?Python
- Java中equals與==的本質區別是什麼?Java
- make makefile cmake qmake都是什麼,有什麼區別?
- SCRM與CRM的區別是什麼?
- DMAIC與DMADV的區別是什麼?AI
- Linux中什麼是打包?與歸檔有什麼區別?Linux
- __new()__ 與 __init()__的區別
- Linux系統中rpm與yum的區別是什麼?Linux
- Golang make和new的區別及實現原理詳解Golang
- 【學習筆記】make 和 new 關鍵字的區別筆記
- Python和GO語言之間的區別是什麼?PythonGo
- 什麼是python?與PHP有什麼區別?PythonPHP
- Python語言中/與//的區別是什麼?Python
- python中類方法的區別是什麼Python
- Session是什麼?它與Cookie有什麼區別?SessionCookie
- Python和Go是什麼?它們之間有什麼區別?PythonGo
- 分散式與叢集的區別是什麼?分散式
- 頻寬與網速的區別是什麼?
- spring boot與spring mvc的區別是什麼?Spring BootMVC
- 網閘與防火牆的區別是什麼防火牆
- 什麼是滲透測試?與安全測試的區別是什麼?
- 系統呼叫與庫函式是什麼,區別是什麼函式
- 原生IP是什麼?與其他IP有什麼區別?
- Laravel中 FeatureTest和 UnitTest的區別是什麼Laravel
- 什麼是HTTPS證書?HTTP與HTTPS的區別HTTP
- 共享儲存是什麼意思?與DRBD有什麼區別?
- Python和GO語言之間的區別是什麼?Python培訓PythonGo
- Linux中Vi和Vim區別是什麼?Linux
- IDFA、IMEI、OAID 是什麼,區別是什麼AI
- python is和==的區別是什麼?Python
- 在js中attribute和property的區別是什麼?JS
- 在Linux中,tomcat和nginx的區別是什麼?LinuxTomcatNginx