我正在學習 Golang 并且來自 Python。以下函數類似于 python 的pop()方法,從列表(或 Go 中的切片)中刪除給定索引處的項目并返回刪除的項目。func popElement(indexOfElement int, slice []int) (int, []int) { element := slice[indexOfElement] newSlice := append(slice[:indexOfElement], slice[indexOfElement+1:]...) return element, newSlice}然后我想將此功能用作以下排序功能的一部分。但是我必須創建一個臨時變量newSlicefunc sortSlice(sliceToSort []int) []int { var sortedSlice []int for 1 <= len(sliceToSort) { indexOfSmallest := findIndexOfSmallest(sliceToSort) smallestElement, newSlice := popElement(indexOfSmallest, sliceToSort) sliceToSort = newSlice sortedSlice = append(sortedSlice, smallestElement) } return sortedSlice}有沒有辦法在不必創建臨時newSlice變量的情況下獲得相同的結果?就像是:func sortSlice(sliceToSort []int) []int { var sortedSlice []int for 1 <= len(sliceToSort) { indexOfSmallest := findIndexOfSmallest(sliceToSort) smallestElement, sliceToSort = popElement(indexOfSmallest, sliceToSort) sortedSlice = append(sortedSlice, smallestElement) } return sortedSlice}
1 回答

慕森王
TA貢獻1777條經驗 獲得超3個贊
smallestElement 需要預先聲明。
func sortSlice(sliceToSort []int) []int {
var sortedSlice []int
var smallestElement int
for 1 <= len(sliceToSort) {
indexOfSmallest := findIndexOfSmallest(sliceToSort)
smallestElement, sliceToSort = popElement(indexOfSmallest, sliceToSort)
sortedSlice = append(sortedSlice, smallestElement)
}
return sortedSlice
}
- 1 回答
- 0 關注
- 111 瀏覽
添加回答
舉報
0/150
提交
取消