中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

Golang中new和make有什么區別

小億
85
2024-01-30 12:30:47
欄目: 編程語言

在Golang中,newmake 是兩個用于分配內存的內建函數。

  1. new 函數:

    • new 函數用于分配并初始化一個值的指針,返回指針。
    • new 函數的參數是一個類型,并返回該類型的指針。
    • 分配的內存被置零,也就是每個位都被設置為零值。
    • new 函數返回的是指向新分配的零值的指針。

    示例:

    var p *int
    p = new(int)
    *p = 42
    fmt.Println(*p) // 輸出: 42
    
  2. make 函數:

    • make 函數用于創建內置引用類型(如 slicemapchannel)的對象。
    • make 函數的參數是一個類型和一個長度(可選,不適用于 channel)。
    • make 函數返回該類型的初始化的非零值。

    示例:

    var s []int
    s = make([]int, 5, 10)
    s[0] = 1
    fmt.Println(s) // 輸出: [1 0 0 0 0]
    

綜上所述,new 函數返回的是指向零值的指針,而 make 函數返回的是初始化的非零值。

0
安仁县| 宣城市| 榆树市| 定州市| 禄丰县| 玉树县| 科技| 石屏县| 东乡县| 缙云县| 大埔区| 凤冈县| 尤溪县| 和静县| 当阳市| 丰原市| 平舆县| 宜州市| 徐闻县| 太湖县| 嘉黎县| 神木县| 元朗区| 普洱| 盐津县| 大庆市| 永城市| 河西区| 屏边| 沁源县| 孝感市| 都兰县| 八宿县| 诸暨市| 和平区| 江源县| 库伦旗| 孟州市| 中卫市| 柳江县| 牡丹江市|