久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      golang make和new區(qū)別

      golang make和new區(qū)別

      make、new操作

      make用于內(nèi)建類型(map、slice 和channel)的內(nèi)存分配。new用于各種類型的內(nèi)存分配。 (推薦學(xué)習(xí):go)

      內(nèi)建函數(shù)new本質(zhì)上說跟其它語言中的同名函數(shù)功能一樣:new(T)分配了零值填充的T類型的內(nèi)存空間,并且返回其地址,即一個(gè)*T類型的值。

      用Go的術(shù)語說,它返回了一個(gè)指針,指向新分配的類型T的零值。有一點(diǎn)非常重要:

      new返回指針。

      內(nèi)建函數(shù)make(T, args)與new(T)有著不同的功能,make只能創(chuàng)建slice、map和channel,并且返回一個(gè)有初始值(非零)的T類型,而不是*T。本質(zhì)來講,導(dǎo)致這三個(gè)類型有所不同的原因是指向數(shù)據(jù)結(jié)構(gòu)的引用在使用前必須被初始化。

      例如,一個(gè)slice,是一個(gè)包含指向數(shù)據(jù)(內(nèi)部array)的指針、長度和容量的三項(xiàng)描述符;在這些項(xiàng)目被初始化之前,slice為nil。對(duì)于slice、map和channel來說,make初始化了內(nèi)部的數(shù)據(jù)結(jié)構(gòu),填充適當(dāng)?shù)闹怠?/p>

      make返回初始化后的(非零)值。

      代碼示例:

      var map1 map[string]string = make(map[string]string)     fmt.Println(map1)     fmt.Println(map1 == nil)      var map2 *map[string]string = new(map[string]string)     fmt.Println(map2)     fmt.Println(map2 == nil)     fmt.Println(*map2)     fmt.Println(*map2 == nil)     //    var map1 map[string]string     map1["aaa"] = "AAA"     map1["bbb"] = "BBB"     map1["ccc"] = "CCC"     fmt.Println(map1)     fmt.Println(len(map1))

      輸出:

      map[] false &map[] false map[] true map[bbb:BBB ccc:CCC aaa:AAA] Success: process exited with code 0.

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)