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上試一試。

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)
}
- 2 回答
- 0 關(guān)注
- 162 瀏覽
添加回答
舉報(bào)