Go語言make創(chuàng)建切片的五種方式
一、創(chuàng)建指定長度切片
創(chuàng)建指定長度的slice,元素初始化為零值,適用于知道長度且需要預(yù)先分配空間場景,代碼示例如下:
s1 := make([]int, 5) s2 := make([]string, 5)
此時(shí)創(chuàng)建的slice的容量于指定長度一致,當(dāng)使用append追加數(shù)據(jù)超過容量時(shí),底層自動(dòng)擴(kuò)容。
二、創(chuàng)建預(yù)分配容量切片
創(chuàng)建slice時(shí)指定長度以及容量,底層數(shù)組預(yù)留擴(kuò)展空間,適用于會(huì)頻繁append操作的場景,代碼示例如下:
s3 := make([]string, 5, 10)
三、創(chuàng)建零長度空切片
創(chuàng)建一個(gè)長度為0但是不為nil的slice,適用于需要返回空切片但避免nil判斷場景,代碼示例如下:
s4 := make([]string, 0)
四、創(chuàng)建帶容量的空切片
創(chuàng)建一個(gè)長度為0容量為256的slice,適用于接收大量數(shù)據(jù)的緩沖區(qū)場景,代碼示例如下:
s5 := make([]string, 0, 256)
五、創(chuàng)建匿名結(jié)構(gòu)體切片
創(chuàng)建匿名結(jié)構(gòu)體slice,讓編譯器根據(jù)上下文自動(dòng)推斷元素類型,適用于臨時(shí)數(shù)據(jù)存儲(chǔ)場景,代碼示例如下:
s6 := make([]struct{}, 2)六、創(chuàng)建方式對(duì)比
| 創(chuàng)建方式 | 長度 | 容量 | 底層數(shù)組 | 典型用途 |
|---|---|---|---|---|
| make([]T, n) | n | n | 已分配 | 固定長度集合 |
| make([]T, n, m) | n | m | 已分配 | 可擴(kuò)展集合 |
| make([]T, 0) | 0 | 0 | 未分配 | 空集合占位符 |
| make([]T, 0, cap) | 0 | cap | 已分配 | 預(yù)分配緩沖區(qū) |
| make([]struct{}, n) | n | n | 已分配 | 輕量級(jí)占位結(jié)構(gòu) |
建議優(yōu)先使用make([]T, n, m)進(jìn)行創(chuàng)建slice,預(yù)先分配容量,以較少擴(kuò)容操作,提升性能。
到此這篇關(guān)于Go語言make創(chuàng)建切片的五種方式的文章就介紹到這了,更多相關(guān)Go語言make創(chuàng)建切片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Golang HTTP 服務(wù)平滑重啟及升級(jí)的思路
Golang HTTP服務(wù)在上線時(shí),需要重新編譯可執(zhí)行文件,關(guān)閉正在運(yùn)行的進(jìn)程,然后再啟動(dòng)新的運(yùn)行進(jìn)程。這篇文章主要介紹了Golang HTTP 服務(wù)平滑重啟及升級(jí),需要的朋友可以參考下2020-04-04
Go語言網(wǎng)絡(luò)故障診斷與調(diào)試技巧
在分布式系統(tǒng)和微服務(wù)架構(gòu)的浪潮中,網(wǎng)絡(luò)編程成為系統(tǒng)性能和可靠性的核心支柱,從高并發(fā)的API服務(wù)到實(shí)時(shí)通信應(yīng)用,網(wǎng)絡(luò)的穩(wěn)定性直接影響用戶體驗(yàn),本文面向熟悉Go基本語法和網(wǎng)絡(luò)編程概念,通過實(shí)際項(xiàng)目經(jīng)驗(yàn)、可運(yùn)行的代碼示例和踩坑教訓(xùn),為你提供一套系統(tǒng)化的網(wǎng)絡(luò)診斷方法2025-08-08
Apache?IoTDB開發(fā)系統(tǒng)之Go原生接口方法
這篇文章主要為大家介紹了?Apache?IoTDB開發(fā)系統(tǒng)之Go原生接口方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
golang中的string與其他格式數(shù)據(jù)的轉(zhuǎn)換方法詳解
這篇文章主要介紹了golang中的string與其他格式數(shù)據(jù)的轉(zhuǎn)換方法,文章通過代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-10-10

