a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Golang > 正文

GO語言make()分配用法實例

2020-04-01 19:18:02
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了GO語言make()分配用法,實例分析了make()的功能及使用技巧,需要的朋友可以參考下
 

本文實例講述了GO語言make()分配用法。分享給大家供大家參考。具體分析如下:

make()分配:內部函數 make(T, args) 的服務目的和 new(T) 不同。
它只生成切片,映射和程道,并返回一個初始化的(不是零)的,type T的,不是 *T 的值。

這種區分的原因是,這三種類型的數據結構必須在使用前初始化.
比如切片是一個三項的描述符,包含數據指針(數組內),長度,和容量;在這些項初始化前,切片為 nil 。

對于切片、映射和程道,make初始化內部數據結構,并準備要用的值。
記住 make() 只用于映射、切片和程道,不返回指針。要明確的得到指針用 new() 分配

 

復制代碼代碼如下:
package main
import "fmt"
func main() {
 //分配片結構;* p==零
 var p *[]int = new([]int)
 *p = make([]int, 100, 100) //這樣寫有點復雜,很容易就搞亂了
 fmt.Println(p)
 //現在將V分配一個新的數組,100個整型
 //寫法一
 //var v  []int = make([]int, 100)
 //寫法二:非常常用的寫法,簡節明了
 v := make([]int, 100)
 fmt.Println(v)
}
通過make()還可以靈活地創建數組切片。如 
//創建切片也使用make函數,它被分配一個零數組和指向這個數組的切片。
//創建一個初始元素個數為5的數組切片,元素初始值為0
a := make([]int, 5)  // len(a)=5
//切片有長度和容量。切片的最大長度就是它的容量。
//指定一個切片的容量,通過第三個參數。
//創建一個初始元素個數為5的數組切片,元素初始值為0,并預留10個元素的存儲空間
b := make([]int, 5, 10)    // len(b)=5, cap(b)=10
//通過重新切片,可使切片增加。
b = b[:cap(b)] // len(b)=5, cap(b)=5
b = b[1:]      // len(b)=4, cap(b)=4
//直接創建并初始化包含5個元素的數組切片
c := []int{1,2,3,4,5}

 

希望本文所述對大家的Go語言程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄毛片 | 国产一区二区三区免费在线观看 | 久久亚洲国产视频 | 久草在线看片 | 青青免费在线视频 | 四虎影视在线 | 日韩在线一区二区三区 | 在线免费观看黄视频 | 亚洲视频在线观看免费 | 久久精品一区二区三区四区 | 亚洲欧美日韩另类精品一区二区三区 | 日韩不卡在线 | 久久久精品高清 | 久久久久久免费免费 | 狠狠色噜噜狠狠狠狠2018 | 亚洲综合在 | 成人欧美一区二区三区黑人 | 色网站在线免费观看 | 日本一区免费看 | 久久黄色网 | 国产一二三视频 | 欧美在线观看一区 | 一区二区三区四区在线 | 黄a网站| 一级一级一级一级毛片 | 超碰人人爱 | 狠狠躁夜夜躁人人爽天天高潮 | 中文在线a在线 | 成人黄色一区 | 蜜臀一区 | 国产一二三视频 | 国产亚洲欧美在线 | 日韩免费视频一区二区 | 国产精品久久久久久久久久久杏吧 | 欧美一级免费看 | 日韩精品久久 | 男男gay腐片h大尺度 | 欧美一区免费 | av毛片免费看 | a久久免费视频 | 美日韩精品 |