欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2015年02月28日 15:03:15   作者:niuniu  
這篇文章主要介紹了GO語言make()分配用法,實(shí)例分析了make()的功能及使用技巧,需要的朋友可以參考下

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

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

這種區(qū)分的原因是,這三種類型的數(shù)據(jù)結(jié)構(gòu)必須在使用前初始化.
比如切片是一個(gè)三項(xiàng)的描述符,包含數(shù)據(jù)指針(數(shù)組內(nèi)),長(zhǎng)度,和容量;在這些項(xiàng)初始化前,切片為 nil 。

對(duì)于切片、映射和程道,make初始化內(nèi)部數(shù)據(jù)結(jié)構(gòu),并準(zhǔn)備要用的值。
記住 make() 只用于映射、切片和程道,不返回指針。要明確的得到指針用 new() 分配

復(fù)制代碼 代碼如下:
package main
import "fmt"
func main() {
 //分配片結(jié)構(gòu);* p==零
 var p *[]int = new([]int)
 *p = make([]int, 100, 100) //這樣寫有點(diǎn)復(fù)雜,很容易就搞亂了
 fmt.Println(p)
 //現(xiàn)在將V分配一個(gè)新的數(shù)組,100個(gè)整型
 //寫法一
 //var v  []int = make([]int, 100)
 //寫法二:非常常用的寫法,簡(jiǎn)節(jié)明了
 v := make([]int, 100)
 fmt.Println(v)
}
通過make()還可以靈活地創(chuàng)建數(shù)組切片。如
//創(chuàng)建切片也使用make函數(shù),它被分配一個(gè)零數(shù)組和指向這個(gè)數(shù)組的切片。
//創(chuàng)建一個(gè)初始元素個(gè)數(shù)為5的數(shù)組切片,元素初始值為0
a := make([]int, 5)  // len(a)=5
//切片有長(zhǎng)度和容量。切片的最大長(zhǎng)度就是它的容量。
//指定一個(gè)切片的容量,通過第三個(gè)參數(shù)。
//創(chuàng)建一個(gè)初始元素個(gè)數(shù)為5的數(shù)組切片,元素初始值為0,并預(yù)留10個(gè)元素的存儲(chǔ)空間
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
//直接創(chuàng)建并初始化包含5個(gè)元素的數(shù)組切片
c := []int{1,2,3,4,5}

希望本文所述對(duì)大家的Go語言程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Go語言中的init函數(shù)特點(diǎn)及用法詳解

    Go語言中的init函數(shù)特點(diǎn)及用法詳解

    在Go語言中,init()函數(shù)是一種特殊的函數(shù),用于在程序啟動(dòng)時(shí)自動(dòng)執(zhí)行一次。它的存在為我們提供了一種機(jī)制,可以在程序啟動(dòng)時(shí)進(jìn)行一些必要的初始化操作,為程序的正常運(yùn)行做好準(zhǔn)備,在這篇文章中,我們將詳細(xì)探討init()函數(shù)的特點(diǎn)、用途和注意事項(xiàng)
    2023-06-06
  • Go語言resty http包調(diào)用jenkins api實(shí)例

    Go語言resty http包調(diào)用jenkins api實(shí)例

    這篇文章主要為大家介紹了Go語言resty http包調(diào)用jenkins api實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • go語言環(huán)境搭建簡(jiǎn)述

    go語言環(huán)境搭建簡(jiǎn)述

    本文簡(jiǎn)單記錄了下go語言環(huán)境的搭建流程,給小伙伴們一個(gè)參考,希望大家能夠喜歡。
    2015-01-01
  • Go語言實(shí)現(xiàn)運(yùn)算符重載的方法詳解

    Go語言實(shí)現(xiàn)運(yùn)算符重載的方法詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用Go語言實(shí)現(xiàn)運(yùn)算符重載的方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-09-09
  • go語言定義零值可用的類型學(xué)習(xí)教程

    go語言定義零值可用的類型學(xué)習(xí)教程

    這篇文章主要為大家介紹了go語言定義零值可用的類型教程學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Go中defer使用場(chǎng)景及注意事項(xiàng)

    Go中defer使用場(chǎng)景及注意事項(xiàng)

    defer 會(huì)在當(dāng)前函數(shù)返回前執(zhí)行傳入的函數(shù),它會(huì)經(jīng)常被用于關(guān)閉文件描述符、關(guān)閉數(shù)據(jù)庫連接以及解鎖資源。這篇文章主要介紹了Go中defer使用注意事項(xiàng),需要的朋友可以參考下
    2021-12-12
  • Golang使用pprof和trace進(jìn)行診斷和修復(fù)性能問題

    Golang使用pprof和trace進(jìn)行診斷和修復(fù)性能問題

    在?Go?中,開發(fā)人員可以使用強(qiáng)大的內(nèi)置工具來幫助診斷和修復(fù)性能問題,其中兩個(gè)工具是?pprof?和?trace?包,下面就跟隨小編一起來了解下如何使用pprof和trace進(jìn)行診斷和修復(fù)性能問題吧
    2024-01-01
  • Go語言的隊(duì)列和堆棧實(shí)現(xiàn)方法

    Go語言的隊(duì)列和堆棧實(shí)現(xiàn)方法

    這篇文章主要介紹了Go語言的隊(duì)列和堆棧實(shí)現(xiàn)方法,涉及container/list包的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • Goland支持泛型了(上機(jī)實(shí)操)

    Goland支持泛型了(上機(jī)實(shí)操)

    Go的泛型不是還在設(shè)計(jì)草圖嗎?最樂觀估計(jì)也要2021年8月份。你說Go語言現(xiàn)在都沒開發(fā)好泛型,你支持這個(gè)特性有什么用呢?感興趣的朋友跟隨小編一起看看吧
    2020-12-12
  • Go-RESTful實(shí)現(xiàn)下載功能思路詳解

    Go-RESTful實(shí)現(xiàn)下載功能思路詳解

    這篇文章主要介紹了Go-RESTful實(shí)現(xiàn)下載功能,文件下載包括文件系統(tǒng)IO和網(wǎng)絡(luò)IO,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10

最新評(píng)論