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
- Java中equals與==的本質區別是什麼?Java
- 深入理解 Go 中的 new() 和 make() 函式Go函式
- make makefile cmake qmake都是什麼,有什麼區別?
- SCRM與CRM的區別是什麼?
- DDD與DCI的區別是什麼?
- Python中/與//的區別是什麼?其如何使用?Python
- Linux中什麼是打包?與歸檔有什麼區別?Linux
- DMAIC與DMADV的區別是什麼?AI
- 什麼是python?與PHP有什麼區別?PythonPHP
- Session是什麼?它與Cookie有什麼區別?SessionCookie
- PHP中new static()與new self()的區別異同分析PHP
- Python和GO語言之間的區別是什麼?PythonGo
- history.go()和history.back()的區別是什麼Go
- __new()__ 與 __init()__的區別
- 【學習筆記】make 和 new 關鍵字的區別筆記
- Golang make和new的區別及實現原理詳解Golang
- Python語言中/與//的區別是什麼?Python
- 網閘與防火牆的區別是什麼防火牆
- 分散式與叢集的區別是什麼?分散式
- 頻寬與網速的區別是什麼?
- Linux系統中rpm與yum的區別是什麼?Linux
- 系統呼叫與庫函式是什麼,區別是什麼函式
- 什麼是滲透測試?與安全測試的區別是什麼?
- python中類方法的區別是什麼Python
- 【Java面試】Mybatis中#{}和${}的區別是什麼?Java面試MyBatis
- 原生IP是什麼?與其他IP有什麼區別?
- Python和Go是什麼?它們之間有什麼區別?PythonGo
- 什麼是OA,與Office 有何區別
- C++中new與malloc的10點區別C++
- 什麼是中斷?什麼是異常?它們有何區別?
- 共享儲存是什麼意思?與DRBD有什麼區別?
- 深入探究Java中equals()和==的區別是什麼Java
- Laravel中 FeatureTest和 UnitTest的區別是什麼Laravel