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

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

添加到 golang 類型中的匿名切片

添加到 golang 類型中的匿名切片

我想在切片上添加一些輔助方法。所以我創(chuàng)建了一個(gè)類型是 []*MyType 有沒(méi)有辦法添加到 MyTypes 的那部分?append 將無(wú)法識(shí)別切片。package mainimport "fmt"type MyType struct{    Name string    Something string}type MyTypes []*MyType func NewMyTypes(myTypes ...*MyType)*MyTypes{    var s MyTypes = myTypes    return &s}//example of a method I want to be able to add to a slicefunc(m MyTypes) Key() string{    var result string    for _,i := range m{        result += i.Name + ":"     }    return result}func main() {    mytype1 ,mytype2 := MyType{Name:"Joe", Something: "Foo"},  MyType{Name:"PeggySue", Something: "Bar"}    myTypes:= NewMyTypes(&mytype1,&mytype2)     //cant use it as a slice sadface    //myTypes = append(myTypes,&MyType{Name:"Random", Something: "asdhf"})    fmt.Println(myTypes.Key())}我不想將它包裝在另一種類型中并命名參數(shù),即使我正在這樣做..因?yàn)?json 編組可能會(huì)有所不同添加到 MyTypes 切片的方法是什么?我真的希望能夠向切片添加一個(gè)方法,以便它可以實(shí)現(xiàn)特定的接口而不影響編組。有沒(méi)有更好的方法?
查看完整描述

1 回答

?
holdtom

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

更新:這個(gè)答案曾經(jīng)包含兩種解決問(wèn)題的方法:我有點(diǎn)笨拙的方法,DaveC的更優(yōu)雅的方法。這是他更優(yōu)雅的方式:


package main


import (

    "fmt"

    "strings"

)


type MyType struct {

    Name      string

    Something string

}


type MyTypes []*MyType


func NewMyTypes(myTypes ...*MyType) MyTypes {

    return myTypes

}


//example of a method I want to be able to add to a slice

func (m MyTypes) Names() []string {

    names := make([]string, 0, len(m))

    for _, v := range m {

        names = append(names, v.Name)

    }

    return names

}


func main() {

    mytype1, mytype2 := MyType{Name: "Joe", Something: "Foo"}, MyType{Name: "PeggySue", Something: "Bar"}

    myTypes := NewMyTypes(&mytype1, &mytype2)

    myTypes = append(myTypes, &MyType{Name: "Random", Something: "asdhf"})

    fmt.Println(strings.Join(myTypes.Names(), ":"))

}

游樂(lè)場(chǎng):https : //play.golang.org/p/FxsUo1vu6L


查看完整回答
反對(duì) 回復(fù) 2021-11-08
  • 1 回答
  • 0 關(guān)注
  • 253 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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