亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

沒有返回值的Go函數如何修改數據?

沒有返回值的Go函數如何修改數據?

Go
慕桂英546537 2023-07-26 17:22:44
我不明白 bubbleSort() 切片如何a應用于 main() 。我不給出return a也不寫全局變量。package mainimport (    "fmt")func bubbleSort(a []int) {    var temp int    for j := 0; j < len(a); j++ {        for i := 0; i < (len(a) - 1); i++ {            if a[i] > a[i+1] {                temp = a[i]                a[i] = a[i+1]                a[i+1] = temp            }        }    }}func inputNums() []int {    var input int    var number int    fmt.Scan(&input)    s := make([]int, input)    for i := 0; i < input; i++ {        fmt.Scan(&number)        s[i] = number    }    return s}func outputNums(b []int) {    for i := 0; i < len(b); i++ {        fmt.Print(b[i])        fmt.Print(" ")    }}func main() {    nums := inputNums()    bubbleSort(nums)    outputNums(nums)}
查看完整描述

1 回答

?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

src/runtime/slice.go


type slice struct {

  array unsafe.Pointer

  len   int

  cap   int

}

在 Go 中,所有參數都是按值傳遞的。切片描述符是一個結構體,通過值傳遞,就像通過賦值一樣。切片描述符包含指向其底層數組的指針。


func bubbleSort(a []int)按值接收a參數,但使用指針a.array修改底層數組元素。


查看完整回答
反對 回復 2023-07-26
  • 1 回答
  • 0 關注
  • 117 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號