golang中new和make的區(qū)別

最近對(duì)golang中new和make函數(shù)感到很困惑,為什么golang中有這么兩個(gè)函數(shù)同時(shí)都可以聲明變量?
下面是上網(wǎng)翻資料查到的一些這兩個(gè)函數(shù)的異同,希望能幫到同樣有疑惑的朋友。

  1. new和make都不是go的關(guān)鍵字,而是go預(yù)定義的函數(shù)。這意味著我們可以將new或者make重新定義為其他類(lèi)型。比如:
func delta(new, make int) int { return make - new }
  1. make返回一個(gè)變量而new返回一個(gè)變量的指針。go中new和make的定義如下:


    image.png
  2. 只有make能做的操作:
    a.創(chuàng)建一個(gè)chan
    b.創(chuàng)建一個(gè)內(nèi)存預(yù)分配的map
    c.創(chuàng)建一個(gè)內(nèi)存預(yù)分配的slice,并且slice的len可以不等于cap

本文作者: 王炎杰
本文鏈接: http://www.itdecent.cn/p/61cd952f322b
版權(quán)聲明: 轉(zhuǎn)載請(qǐng)注明出處!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容