gpt4 book ai didi

go - 将 slice/数组传递给另一个结构

转载 作者:IT王子 更新时间:2023-10-29 02:23:39 25 4
gpt4 key购买 nike

我有以下适合我的代码。

params := &cloudformation.CreateStackInput{
StackName: aws.String(d.MachineName),
TemplateURL: aws.String(d.CloudFormationURL),
Parameters: []*cloudformation.Parameter{
{
ParameterKey: aws.String("KeyName"),
ParameterValue: aws.String(d.KeyPairName),
},
},
}

我想外部化参数的创建,所以我创建了以下方法。

func (d *Driver) createParams() []cloudformation.Parameter {

val := "KeyName=Foo|KeyName2=bar"

s := strings.Split(val, "|")

a := []cloudformation.Parameter{}

for _, element := range s {

pairs := strings.Split(element, "=")

key := pairs[0]
value := pairs[1]

par := cloudformation.Parameter{
ParameterKey: aws.String(key),
ParameterValue: aws.String(value),
}

a = append(a, par)

}

return a

我的问题是如何将 createParams 的输出传递给 CreateStackInput 的参数?

params := &cloudformation.CreateStackInput{
StackName: aws.String(d.MachineName),
TemplateURL: aws.String(d.CloudFormationURL),
Parameters: d.createParam(),
}

以上产量

cannot use d.createParam() (type []cloudformation.Parameter) as type []*cloudformation.Parameter in field value

最佳答案

指针类型与它们指向的取消引用类型不兼容,当您尝试将 []*cloudformation.Parameter 设置为 [ ]cloudformation.Parameter。将 createParams 的返回类型更改为 []*cloudformation.Parameter 并设置 par := &cloudformation.Parameter

func (d *Driver) createParams() []*cloudformation.Parameter {
val := "KeyName=Foo|KeyName2=bar"
s := strings.Split(val, "|")
a := []*cloudformation.Parameter{} //a should be a slice of pointers
for _, element := range s {
pairs := strings.Split(element, "=")
key := pairs[0]
value := pairs[1]
par := &cloudformation.Parameter{ //& turns par into a pointer to the parameter
ParameterKey: aws.String(key),
ParameterValue: aws.String(value),
}
a = append(a, par)
}
return a
}

关于go - 将 slice/数组传递给另一个结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33789572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com