var a [4]int和之間有什么區(qū)別b := make([]int, 4)?在b可擴展,但不是a吧?但是,如果我知道我確實需要4個元素,那么數(shù)組快于切片嗎?有沒有之間的性能差異var d []int和e := make([]int)?f := make([]int, 5)如果沒有第一個元素(即5個元素)的長度,是否會提供更多的性能?這c := make([]int, 5, 10)不會分配比我可以訪問的更多的內(nèi)存嗎?
1 回答

叮當貓咪
TA貢獻1776條經(jīng)驗 獲得超12個贊
a
是一個數(shù)組,并且b
是一個切片。使slice與數(shù)組不同的原因是slice是指向數(shù)組的指針;它是數(shù)組的指針。slice是引用類型,這意味著如果您將一個slice分配給另一個,則兩個都將引用同一個基礎(chǔ)數(shù)組。例如,如果一個函數(shù)接受了slice參數(shù),則對切片元素所做的更改將對調(diào)用者可見,這類似于將指針傳遞給基礎(chǔ)數(shù)組(見Learning Go)。您可以輕松地使用append
和copy
切片。數(shù)組應(yīng)該比切片快一點,但是差別不大。除非您確切知道大小,否則最好使用切片使事情變得容易。make([] type,length,Capacity),您可以估計大小和可能的容量以提高性能。
- 1 回答
- 0 關(guān)注
- 597 瀏覽
添加回答
舉報
0/150
提交
取消