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

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

更好的初始化

更好的初始化

Go
喵喵時光機(jī) 2021-09-27 15:43:52
我正在向 AWS 發(fā)出 API 調(diào)用以獲取使用 Golang SDK 的 AMI 列表。該DescribeImages函數(shù)接收DescribeImagesInput. 我只想看到我自己的 AMI,所以我的代碼是這樣做的:// Build inputself := "self"ownerSelf := []*string{&self}ownImages := &ec2.DescribeImagesInput{    Owners: ownerSelf,}// Call the DescribeImages Operationresp, err := svc.DescribeImages(ownImages)if err != nil {    panic(err)}構(gòu)建這樣的輸入非常難看。我確信有更好的技術(shù),但是作為 Golang n00b,我不知道。什么是更好的方法?
查看完整描述

2 回答

?
千巷貓影

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個贊

你不能得到比這更短的:


self := "self"

ownImages := &ec2.DescribeImagesInput{Owners: []*string{&self}}

或者在一行中(沒有self字符串變量):


ownImages := &ec2.DescribeImagesInput{Owners: []*string{&[]string{"self"}[0]}}

(這里發(fā)生的事情是我創(chuàng)建了一個[]string帶有一個元素的切片"self",索引其唯一的元素并獲取其地址并使用此值來初始化所需的[]*string.)


您可以做的是創(chuàng)建一個輔助函數(shù),它string為您構(gòu)造指針切片:


func sp(es ...string) []*string {

    s := make([]*string, len(es))

    for i := range es {

        s[i] = &es[i]

    }

    return s

}

這樣,聲明變?yōu)椋?/p>


ownImages = &ec2.DescribeImagesInput{Owners: sp("self")}

在Go Playground上試一試。


查看完整回答
反對 回復(fù) 2021-09-27
?
慕桂英546537

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

我不知道這能接受多少,但它也應(yīng)該這樣做:


self := "self"

resp, err := svc.DescribeImages(

    &ec2.DescribeImagesInput{

        Owners: []*string{&self},

    },

}

if err != nil {

    panic(err)

}

這當(dāng)然可以縮短,盡管以 IMO 的可讀性為代價


self := "self"

resp, err := svc.DescribeImages(&ec2.DescribeImagesInput{Owners:[]*string{&self}}}

if err != nil {

    panic(err)

}


查看完整回答
反對 回復(fù) 2021-09-27
  • 2 回答
  • 0 關(guān)注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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