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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

append 的第一個(gè)參數(shù)必須是 slice(struct 和 golang)

append 的第一個(gè)參數(shù)必須是 slice(struct 和 golang)

Go
狐的傳說 2023-05-15 14:48:00
你好,我是 golang 的初學(xué)者,我正在開發(fā)購物車應(yīng)用程序,每次我嘗試執(zhí)行代碼時(shí),它都會(huì)顯示“要附加的第一個(gè)參數(shù)必須是切片”,這里是代碼包 carttype Cart struct {    items map[string]Item}type Item struct {    id       string    name     string    price    float32    quantity int}func NewItem(i string, n string, p float32) Item {    return Item{        id:       i,        name:     n,        price:    p,        quantity: 0,    }}func NewCart() Cart {    return Cart{        items: map[string]Item{}}}func (box *Cart) AddItem(item Item) []Item {    box.items = append(box.items, item)    return box.items}func main() {    utils.CreateLogger("shopping-cart")    shoppingCart := cart.NewCart()    item1 := cart.NewItem("potato121", "Potato", 10)    err := shoppingCart.AddItem(item1)}
查看完整描述

1 回答

?
白衣非少年

TA貢獻(xiàn)1155條經(jīng)驗(yàn) 獲得超0個(gè)贊

您收到錯(cuò)誤是因?yàn)槟鷩L試在這行代碼中將對(duì)象添加到 using 中map:append()


box.items = append(box.items, item)

同時(shí)box.items類型是map[string]Item.


type Cart struct {

    items map[string]Item

}

append()內(nèi)置函數(shù)只能用于切片數(shù)據(jù)類型。


我不確定您要做什么,是使用 map 還是 slice 作為.items. 但是,如果您希望該.items屬性是一個(gè)切片,則將您的代碼更改為:


type Cart struct {

    items []Item

}


func NewCart() Cart {

    return Cart{

        items: make([]Item, 0)}

}

如果您希望該.items屬性是 a map,請(qǐng)將您的代碼更改為:


func NewCart() Cart {

    return Cart{

        items: map[string]Item{}}

}


func (box *Cart) AddItem(item Item) map[string]Item {

    box.items[item.id] = item

    return box.items

}


查看完整回答
反對(duì) 回復(fù) 2023-05-15
  • 1 回答
  • 0 關(guān)注
  • 160 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)