第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

Go中關于`slice`和`append`的問題

Go中關于`slice`和`append`的問題

Go
有只小跳蛙 2021-04-27 13:26:00
我寫了下面的代碼。但是我不能編譯它。這是我的代碼:package mainimport "fmt"func main() {    tmp := make([]int, 10)    for i := 0; i < 10; i++ {        tmp[i] = i    }    res := mapx(foo, tmp)    fmt.Printf("%v\n", res)}func foo(a int) int {    return a + 10}func mapx(functionx func(int) int, list []int) (res []int) {    res = make([]int, 10)    for _, i := range(list) {        append(res, functionx(i))    }    return}同時錯誤消息也很混亂: prog.go:21: append(res, functionx(i)) not used但是,如果我將替換append(res, functionx(i))(第21行)res = append(res, functionx(i)),則效果很好。有誰能夠幫我?
查看完整描述

1 回答

?
三國紛爭

TA貢獻1804條經(jīng)驗 獲得超7個贊

附加并復制切片

可變參數(shù)函數(shù)將零個或多個值x附加到類型S的s(該類型必須是切片類型),并返回結(jié)果切片,該類型也是S類型。

如果s的容量不足以容納其他值,則append分配一個新的足夠大的切片,使其既適合現(xiàn)有slice元素又適合附加值。因此,返回的切片可以引用不同的基礎數(shù)組。

來電

在函數(shù)調(diào)用中,函數(shù)值和參數(shù)按通常的順序求值。在對它們進行評估之后,調(diào)用的參數(shù)將按值傳遞給函數(shù),并且被調(diào)用函數(shù)開始執(zhí)行。當函數(shù)返回時,該函數(shù)的返回參數(shù)按值傳遞回調(diào)用函數(shù)。

在Go中,參數(shù)按值傳遞。

您需要進行編寫,res = append(res, functionx(i))以免丟棄res的新值,res引用的是不同的片,并可能引用了不同的基礎數(shù)組。

例如,


package main


import "fmt"


func main() {

    res := []int{0, 1}

    fmt.Println(res)

    _ = append(res, 2) // discard

    fmt.Println(res)

    res = append(res, 2) // keep

    fmt.Println(res)

}

輸出:


[0 1]

[0 1]

[0 1 2]


查看完整回答
反對 回復 2021-05-10
  • 1 回答
  • 0 關注
  • 260 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號