2 回答

TA貢獻1829條經驗 獲得超7個贊
你不能得到比這更短的:
self := "self"
ownImages := &ec2.DescribeImagesInput{Owners: []*string{&self}}
或者在一行中(沒有self字符串變量):
ownImages := &ec2.DescribeImagesInput{Owners: []*string{&[]string{"self"}[0]}}
(這里發生的事情是我創建了一個[]string帶有一個元素的切片"self",索引其唯一的元素并獲取其地址并使用此值來初始化所需的[]*string.)
您可以做的是創建一個輔助函數,它string為您構造指針切片:
func sp(es ...string) []*string {
s := make([]*string, len(es))
for i := range es {
s[i] = &es[i]
}
return s
}
這樣,聲明變為:
ownImages = &ec2.DescribeImagesInput{Owners: sp("self")}
在Go Playground上試一試。

TA貢獻1848條經驗 獲得超10個贊
我不知道這能接受多少,但它也應該這樣做:
self := "self"
resp, err := svc.DescribeImages(
&ec2.DescribeImagesInput{
Owners: []*string{&self},
},
}
if err != nil {
panic(err)
}
這當然可以縮短,盡管以 IMO 的可讀性為代價
self := "self"
resp, err := svc.DescribeImages(&ec2.DescribeImagesInput{Owners:[]*string{&self}}}
if err != nil {
panic(err)
}
- 2 回答
- 0 關注
- 168 瀏覽
添加回答
舉報