最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

go語言中切片的長(zhǎng)度和容量的區(qū)別

 更新時(shí)間:2021年04月27日 10:37:21   作者:鹿灝楷silves  
這篇文章主要介紹了go語言中切片的長(zhǎng)度和容量的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

切片的長(zhǎng)度,顯而易見的就是元素的個(gè)數(shù),根據(jù)元素的個(gè)數(shù)進(jìn)行返回具體的長(zhǎng)度。

切片的長(zhǎng)度,更像是一個(gè)警戒值,如果長(zhǎng)度與容量相等,就會(huì)進(jìn)行容量的擴(kuò)容,比如

des :=make([]int , 3 , 5)
//此時(shí),長(zhǎng)度為3,容量為5,但是如果使用append(),
//切片長(zhǎng)度會(huì)變?yōu)?,再次使用append()切片長(zhǎng)度變?yōu)?。
//此時(shí),切片長(zhǎng)度與容量相同,此時(shí),切片的容量增大變?yōu)閏ap = len*2

也就是通過一個(gè)容量設(shè)警戒值,如果等于警戒值,就會(huì)自動(dòng)將切片進(jìn)行擴(kuò)容

補(bǔ)充:Go語言中切片的長(zhǎng)度與容量的變化

在學(xué)習(xí)go語言的切片信息時(shí),發(fā)現(xiàn)切片的容量變化非常讓人摸不著頭腦,為了更記憶深刻就寫下了這篇,如有錯(cuò)誤之處,請(qǐng)大家指正

一,當(dāng)前切片的長(zhǎng)度與容量相等情況:

package main
import (
    "fmt"
)
func main() {
	numbers := []int{0,1,2}  
	printSlice(numbers)
	//通過append給numbers增加信息,如果當(dāng)前切片的長(zhǎng)度與容量相等,增加信息的長(zhǎng)度小于等于原來的長(zhǎng)度,
	那么切片的長(zhǎng)度變?yōu)橄嗉又?,容量變?yōu)樵瓉淼?倍(圖片一的第二行結(jié)果)
	numbers = append(numbers, 10,5,6) 
	printSlice(numbers)
	
	//通過append給numbers增加信息,如果當(dāng)前切片A的長(zhǎng)度與容量相等,增加信息B的長(zhǎng)度大于切片A原來的長(zhǎng)度,
	那么切片的長(zhǎng)度變?yōu)橄嗉又停萘孔優(yōu)椋築長(zhǎng)度+A長(zhǎng)度+(B長(zhǎng)度-A長(zhǎng)度)%2(圖片一的第三行結(jié)果)
	numbers = append(numbers, 12,13,15,16,17,18,19,20,21,22,23) 
	printSlice(numbers)
}
func printSlice(x []int){
   fmt.Printf("len=%d cap=%d slice=%v\n",len(x),cap(x),x)
}

圖片一:

在這里插入圖片描述

二,如果當(dāng)前切片的長(zhǎng)度小于容量情況:

增加信息的長(zhǎng)度與當(dāng)前長(zhǎng)度和小于等于容量

func main() {
   /* 創(chuàng)建切片 */
   numbers := []int{0,1,2}  
   printSlice(numbers)
   numbers = append(numbers, 10,5) 
   printSlice(numbers)
   //通過append給numbers增加信息,如果當(dāng)前切片的長(zhǎng)度小于容量,增加信息的長(zhǎng)度與當(dāng)前長(zhǎng)度和小于等于容量,
   那么numbers的長(zhǎng)度變?yōu)橄嗉又?,容量不?圖片二的第三行結(jié)果)
   numbers = append(numbers, 11)  
   printSlice(numbers)
}

圖片二:

在這里插入圖片描述

增加信息B的長(zhǎng)度與當(dāng)前A的長(zhǎng)度大于A容量并且小于A容量的2倍

func main() {
   /* 創(chuàng)建切片 */
   numbers := []int{0,1,2}  
   printSlice(numbers)
   numbers = append(numbers, 10,5) 
   printSlice(numbers)
   //通過append給numbers增加信息,如果當(dāng)前切片A的長(zhǎng)度小于容量,增加信息B的長(zhǎng)度與當(dāng)前A的長(zhǎng)度大于A容量并且小于A容量的2倍,
   那么numbers的長(zhǎng)度變?yōu)橄嗉又停萘孔優(yōu)椋篈容量*2(圖片三的第三行結(jié)果)
   numbers = append(numbers, 11,12)  
   printSlice(numbers)
}

圖片三:

在這里插入圖片描述

增加信息B的長(zhǎng)度與當(dāng)前A的長(zhǎng)度大于A容量的2倍

func main() {
	/* 創(chuàng)建切片 */
	numbers := []int{0,1,2}  
	printSlice(numbers)
	numbers = append(numbers, 10,5) 
	printSlice(numbers)
	//通過append給numbers增加信息,如果當(dāng)前切片A的長(zhǎng)度小于容量,增加信息B的長(zhǎng)度與當(dāng)前A的長(zhǎng)度大于A容量的2倍,
	那么numbers的長(zhǎng)度變?yōu)橄嗉又虲。容量變?yōu)椋築長(zhǎng)度+A長(zhǎng)度+(B長(zhǎng)度-A長(zhǎng)度)%2(圖片四的第三行結(jié)果)
	numbers = append(numbers, 11,12,13,15,16,17,18,19,20)  
	printSlice(numbers)
}

圖片四:

在這里插入圖片描述

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • Golang 日期/時(shí)間包的使用詳解

    Golang 日期/時(shí)間包的使用詳解

    這篇文章主要介紹了Golang 日期/時(shí)間包的使用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-03-03
  • Go語言并發(fā)編程之控制并發(fā)數(shù)量實(shí)現(xiàn)實(shí)例

    Go語言并發(fā)編程之控制并發(fā)數(shù)量實(shí)現(xiàn)實(shí)例

    這篇文章主要為大家介紹了Go語言并發(fā)編程之控制并發(fā)數(shù)量實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Go?并發(fā)編程協(xié)程及調(diào)度機(jī)制詳情

    Go?并發(fā)編程協(xié)程及調(diào)度機(jī)制詳情

    這篇文章主要介紹了Go并發(fā)編程協(xié)程及調(diào)度機(jī)制詳情,協(xié)程是Go語言最大的特色之一,goroutine的實(shí)現(xiàn)其實(shí)是通過協(xié)程,更多相關(guān)內(nèi)容需要的朋友可以參考一下
    2022-09-09
  • golang struct 實(shí)現(xiàn) interface的方法

    golang struct 實(shí)現(xiàn) interface的方法

    這篇文章主要介紹了golang struct 實(shí)現(xiàn) interface的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • ???????Golang實(shí)現(xiàn)RabbitMQ中死信隊(duì)列幾種情況

    ???????Golang實(shí)現(xiàn)RabbitMQ中死信隊(duì)列幾種情況

    本文主要介紹了???????Golang實(shí)現(xiàn)RabbitMQ中死信隊(duì)列幾種情況,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 詳解Golang中零拷貝的原理以及實(shí)踐

    詳解Golang中零拷貝的原理以及實(shí)踐

    零拷貝技術(shù)相信大家都有所耳聞,但是本文不僅會(huì)講述零拷貝技術(shù)的原理,并將從實(shí)際代碼出發(fā),看看零拷貝技術(shù)在golang中的應(yīng)用,現(xiàn)在讓我們開始吧
    2023-07-07
  • golang網(wǎng)絡(luò)通信超時(shí)設(shè)置方式

    golang網(wǎng)絡(luò)通信超時(shí)設(shè)置方式

    這篇文章主要介紹了golang網(wǎng)絡(luò)通信超時(shí)設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Go中過濾范型集合性能示例詳解

    Go中過濾范型集合性能示例詳解

    這篇文章主要為大家介紹了Go中過濾范型集合性能示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • Go語言判斷指定文件是否存在的方法

    Go語言判斷指定文件是否存在的方法

    這篇文章主要介紹了Go語言判斷指定文件是否存在的方法,實(shí)例分析了Go語言針對(duì)文件操作的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • Go語言實(shí)現(xiàn)登錄驗(yàn)證代碼案例

    Go語言實(shí)現(xiàn)登錄驗(yàn)證代碼案例

    這篇文章主要介紹了Go語言實(shí)現(xiàn)登錄驗(yàn)證代碼案例,代碼和圖文講解的很清晰,有感興趣的可以學(xué)習(xí)下
    2021-03-03

最新評(píng)論

马关县| 榕江县| 开江县| 社旗县| 弋阳县| 灵丘县| 溆浦县| 青冈县| 高碑店市| 鄂尔多斯市| 通渭县| 威海市| 佛学| 沈阳市| 龙岩市| 资源县| 德令哈市| 靖安县| 兴安县| 青神县| 恩施市| 洛扎县| 江安县| 保康县| 莱西市| 仁怀市| 湖南省| 齐齐哈尔市| 常宁市| 大洼县| 富源县| 恩平市| 清水河县| 广平县| 永安市| 台东县| 石柱| 民乐县| 东源县| 开鲁县| 中方县|