日韩性视频-久久久蜜桃-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网 | 亚洲青涩在线 | 国产精品资源站 | 亚洲精品鲁一鲁一区二区三区 | 久久精品8| 亚洲女人被黑人巨大进入 | av尤物| 久久精品免费一区二区 | 91视频看片| 国产调教在线 | 97潮色| av免费大全 | 色多多导航 | 日日夜夜综合 | xxxxxxxx黄色片 | 五月天色丁香 | a√国产| 无套内谢老熟女 | 中文字幕15页 | 福利在线小视频 | 伊人精品综合 | 九九热精品视频在线观看 | 97人人澡人人爽人人模亚洲 | 色屋在线 | 亚洲最大视频网 | 日本人妖在线 | 高中男男gay互囗交观看 | 在线成人一区 | 人妻丰满熟妇av无码区 | 国产精品911 | 爆操白虎 | 调教在线观看 | 久久精品国产亚洲av麻豆 | 久久精品www | 福利视频一区二区 | 黄网站在线播放 | 精品熟妇一区二区三区 | 在线视频欧美一区 | 国产精品美女在线观看 | 亚洲精品日韩在线 | av不卡在线 | 日日燥夜夜燥 | 91大神在线免费观看 | 午夜网站在线观看 | 日韩欧美偷拍 | 好男人在线观看 | 美女裸体跪姿扒开屁股无内裤 | 国产精品一品二品 | h网站免费在线观看 | 国产一级爽片 | 青青草免费在线观看 | 熟女一区二区三区视频 | 日韩一二三区在线观看 | 欧美午夜寂寞影院 | 国内精品久久久久久久久久久 | 成年人免费观看网站 | 中国黄色一级视频 | 亚洲天堂一区二区在线 | 日日干日日草 | 91玉足脚交嫩脚丫在线播放 | 又粗又猛又爽又黄少妇视频网站 | 午夜色网| 欧美人伦 | 国产99页 | 久久精品日韩无码 | 欧美极品第一页 | 蜜臂av| 99久久婷婷国产综合精品草原 | 老司机深夜福利网站 | 国产高清在线免费观看 | 国产成人一区二区三区小说 | 欧美成人一二三区 | www.毛片.com | 女大学生的家政保姆初体验 | 国产精品一区二区三区免费看 | 国产高清不卡一区 | 日韩中文在线一区 | 欧美激情一区二区三区p站 欧美mv日韩mv国产网站app | 苏晴忘穿内裤坐公交车被揉到视频 | 毛茸茸毛片 | 国产亚洲精品久久久久婷婷瑜伽 | 一区二区三区欧美精品 | 亚洲第一女人av | 日韩精品一区在线 | 成人av电影免费观看 | 18+视频在线观看 | 一区二区三区xxx | av影片在线看 | 久久大尺度 | 久久人 | 肉嫁高柳家在线看 | 韩国黄色一级片 | 国产精品69久久久久 | 日韩欧美在线观看一区二区 | 欧亚av | 久久久久一级片 | 影音先锋男人站 | 91美女片黄在线观看91美女 |