为了账号安全,请及时绑定邮箱和手机立即绑定

无需创建临时变量即可重新分配变量

无需创建临时变量即可重新分配变量

Go
慕哥6287543 2023-02-06 10:26:16
我正在学习 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

}


查看完整回答
反对 回复 2023-02-06
  • 1 回答
  • 0 关注
  • 119 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号