go new,make的區(qū)別,數(shù)組和切片的區(qū)別

1.new和make的區(qū)別?

  • 相同點:
    • new和make都是用來開辟空間的
  • 不同點:
    • new是初始化一個類型的指針,返回的是類型指針,而里面的值為默認(rèn)初始值,只對值類型有效
    • make是針對slice切片,map字典,chan管道初始化,并且返回對應(yīng)的初始值
      • 并非返回指針,而是對應(yīng)的類型有效值

2.數(shù)組和切片的區(qū)別

  • 相同點:
    • 都是一系列用來存放對應(yīng)數(shù)據(jù)的集合
  • 不同點:
    • 基本:
      • 數(shù)組不可改變,定義后只能修改,無法增刪
      • 切片可以進行后續(xù)操作改變
    • 語法定義:
      • 數(shù)組的語法為: var arr [10]int
      • 切片的語法為: var arr []int
    • 類型:
      • 數(shù)組:值類型,進行函數(shù)傳遞值時,通常是值傳遞,拷貝一份后進行操作
      • 切片:引用類型,函數(shù)操作時,針對傳遞指針進行操作
    • 空間大?。?
      • 數(shù)組:數(shù)組大小為初始值時,默認(rèn)的長度以及類型進行開辟空間
      • 切片:切片大小默認(rèn)為24。這是因為切片的結(jié)構(gòu)體只存放三個3個變量
        • 指針,長度,容量
        • 切片可以進行增刪值,當(dāng)超出現(xiàn)有容量后,會在1024容量內(nèi)進行翻倍,超出后則每次增加1/4
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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