为了账号安全,请及时绑定邮箱和手机立即绑定

将切片/数组传递给另一个结构

将切片/数组传递给另一个结构

Go
幕布斯7119047 2021-11-22 18:12:20
我有以下代码对我有用。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
查看完整描述

1 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

指针类型与它们指向的解引用类型不兼容,当您尝试将 a 设置[]*cloudformation.Parameter为 a 时,错误会告诉您这一点[]cloudformation.Parameter。更改createParamsto的返回类型[]*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

  }


查看完整回答
反对 回复 2021-11-22
  • 1 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信