国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > 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語言程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 辰溪县| 临泽县| 专栏| 克什克腾旗| 西昌市| 贺州市| 闽清县| 威远县| 辽宁省| 永寿县| 沽源县| 北票市| 邵武市| 手游| 吉木乃县| 涿鹿县| 洞口县| 汪清县| 社会| 炉霍县| 上高县| 富蕴县| 尖扎县| 鹤壁市| 博湖县| 缙云县| 黄石市| 新营市| 奈曼旗| 三门县| 东丽区| 伽师县| 蓬溪县| 平武县| 尼玛县| 大冶市| 漯河市| 亚东县| 白玉县| 大冶市| 昌图县|