append函數能夠在一個slice尾部插入元素,某天寫了這麼一句代碼append([]int{1},nums)
,其中nums是一個slice,可是這麼寫是錯誤的,由於append第二個參數應該是一個參數,單這裏傳入了一個slice。因而研究了一下這個問題golang
將其改爲append([]int{1},nums...)
便可,差異僅僅是nums後面多了...這樣就表明傳入的是多個元素而不是一個slice,可是這樣實際上是把nums打散成多個元素而後挨個插入第一個slice中,不知道會不會對性能形成影響。以後測試後再補充bash
目前總結出的...用法有兩種: 1.放在參數後面,表明不定數量的參數 2.放在slice後面,表明將slice打散進行傳遞app
當想在slice的一個特定位置插入元素時,golang沒有官方方法,這裏記錄一種較爲高效的插入方法函數
s = append(s, zero_value)
copy(s[i+1:], s[i:])
s[i] = x
複製代碼