日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

怎么new一个指针_19. Go语言里的 make 和 new 有什么区别?

發布時間:2024/9/19 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎么new一个指针_19. Go语言里的 make 和 new 有什么区别? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,我是明哥。

由于某些不可抗力,之前該專欄的所有內容都被刪除了。因此之后的一段時間內,我會重新發布這些文章,先給已經看過的關注者提個醒。


本文原文:http://golang.iswbm.com

Github:http://github.com/iswbm/GolangCodingTime

1. new 函數

在官方文檔中,new 函數的描述如下

// The new built-in function allocates memory. The first argument is a type, // not a value, and the value returned is a pointer to a newly // allocated zero value of that type. func new(Type) *Type

可以看到,new 只能傳遞一個參數,該參數為一個任意類型,可以是Go語言內建的類型,也可以是你自定義的類型

那么 new 函數到底做了哪些事呢:

  • 分配內存
  • 設置零值
  • 返回指針(重要)

舉個例子

import "fmt"type Student struct {name stringage int }func main() {// new 一個內建類型num := new(int)fmt.Println(*num) //打印零值:0// new 一個自定義類型s := new(Student)s.name = "wangbm" }

2. make 函數

在官方文檔中,make 函數的描述如下

//The make built-in function allocates and initializes an object
//of type slice, map, or chan (only). Like new, the first argument is
// a type, not a value. Unlike new, make's return type is the same as
// the type of its argument, not a pointer to it.
func make(t Type, size ...IntegerType) Type

翻譯一下注釋內容

  • 內建函數 make 用來為 slice,map 或 chan 類型(注意:也只能用在這三種類型上)分配內存和初始化一個對象
  • make 返回類型的本身而不是指針,而返回值也依賴于具體傳入的類型,因為這三種類型就是引用類型,所以就沒有必要返回他們的指針了
  • 注意,因為這三種類型是引用類型,所以必須得初始化(size和cap),但是不是置為零值,這個和new是不一樣的。

    舉幾個例子

    //切片 a := make([]int, 2, 10) // 字典 b := make(map[string]int)// 通道 c := make(chan int, 10)

    3. 總結

    new:為所有的類型分配內存,并初始化為零值,返回指針。

    make:只能為 slice,map,chan 分配內存,并初始化,返回的是類型。

    另外,目前來看 new 函數并不常用,大家更喜歡使用短語句聲明的方式。

    a := new(int) *a = 1 // 等價于 a := 1

    但是 make 就不一樣了,它的地位無可替代,在使用slice、map以及channel的時候,還是要使用make進行初始化,然后才可以對他們進行操作。


    好了,今天的文章就到這里了。

    若今天的分享對你有幫助,不如點個贊,支持一下?

    總結

    以上是生活随笔為你收集整理的怎么new一个指针_19. Go语言里的 make 和 new 有什么区别?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 美日韩av| 99国产精品久久久久久久久久久 | 中文字幕一区二区三区四区视频 | 亚洲av电影天堂男人的天堂 | 重囗味sm一区二区三区 | 中文字幕在线免费看线人 | 三级欧美韩日大片在线看 | 亚洲涩涩视频 | 国产av成人一区二区三区 | 国产白拍 | 高潮一区二区 | 国产亚洲成av人片在线观看桃 | 国产精品入口66mio男同 | 日皮视频在线观看 | 99精品影视 | 国精产品一区一区三区有限公司杨 | 欧美一级电影在线 | 91网站在线播放 | 岛国av片 | 欧美精品免费视频 | 成人欧美一区二区三区在线观看 | 日本免费久久 | 中文字字幕第183页 欧美特级一级片 | 老司机一区 | 亚洲精品在线播放视频 | 久操视频精品 | 欧美一区二区三区四区五区六区 | 人人妻人人澡人人爽精品欧美一区 | cao我| 激情久久久久久久 | 51 吃瓜网| 乖疼润滑双性初h | 老司机午夜免费视频 | 男女日批视频 | 精品国产乱码久久久久久鸭王1 | 免费成人av在线播放 | 日韩精品一区二区三区免费视频 | 色七七亚洲 | 97视频成人 | 荫蒂被男人添免费视频 | 超碰中文在线 | 日本狠狠干 | 日韩精品一区二区三区在线 | 国产在线传媒 | 亚洲无遮挡 | av青青| 欧美日韩一区在线播放 | 在线观看中文字幕第一页 | 国产一区二区免费在线 | 老牛影视少妇在线观看 | 污污小视频 | 精品一区中文字幕 | 一本色道久久综合亚洲 | 久久精品国产大片免费观看 | 激情久久一区 | 欧美伊人久久 | 男插女青青影院 | 玖玖成人 | 午夜激情视频在线观看 | 一边摸内裤一边吻胸 | 久久成人精品一区二区 | 久久精品无码毛片 | 黑人粗进入欧美aaaaa | 色婷婷狠狠操 | 污污网站免费在线观看 | 亚洲污网站 | 日韩精品在线免费视频 | 就要操av| 黑巨茎大战欧美白妞 | 中文字幕Av日韩精品 | 中文字幕人妻一区二区在线视频 | 国产精品一区二区三区免费视频 | 99久久精品国产一区色 | 黄视频网站在线观看 | 欧美精品久久久久久久久老牛影院 | 欧美日韩少妇 | 4444亚洲人成无码网在线观看 | 日韩porn| 动漫精品一区二区三区 | 牛牛av| 日韩字幕在线观看 | 波多野结衣一区二区三区在线观看 | 亚洲精品一区二区三区婷婷月 | 亚洲国产综合网 | 国产精品一二区在线观看 | 日韩一级在线观看视频 | 国产一区二区视频免费在线观看 | 久久久久国产一区二区三区 | 亚洲精品乱码久久久久久久 | 户外少妇对白啪啪野战 | 超碰免费在线97 | 精品国产aⅴ一区二区三区四川人 | 成年人视频网 | 日韩伦理在线视频 | 九九爱精品视频 | 中文在线免费看视频 | 青青草狠狠干 | 中文字幕一区二区人妻在线不卡 | 日本女人黄色 |