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 关注
- 145 浏览
添加回答
举报