请教一个变量返回的问题

songday · 2020-06-02 13:57:18 · 751 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2020-06-02 13:57:18 的主题,其中的信息可能已经有所发展或是发生改变。

大家好,我定义了一个:Param

type Param struct {
    name        string
    textValue   string
    numberValue uint64
    required    bool
    paramType   ParamType
}

又定义了一个:Params以及它的方法

type Param struct {
    name        string
    textValue   string
    numberValue uint64
    required    bool
    paramType   ParamType
}

type Params []Param

func NewParams() Params {
    var params = make(Params, 0, 10)
    return params
}

func (thisParams Params) AddParam(name string, required bool, paramType ParamType) Params {
    p := Param{name: name, required: required, paramType: paramType}
    println(`len(thisParams) 1`, len(thisParams)) // 这是始终是:0
    thisParams = append(thisParams, p)
    println(`len(thisParams) 2`, len(thisParams)) // 这是始终是:1
    return thisParams
}

但是我在调用AddParam方法的时候:

NewParams().AddParam("name", true, 1)

它里面打印的len(thisParams) 2数组长度,始终是1

请问为什么append方法没有增加到原始的params变量里?


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

751 次点击  
加入收藏 微博
1 回复  |  直到 2020-06-02 14:08:07
songday
songday · #1 · 5年之前

是我有一个地方没有接收append的返回值。 问题解决了哈

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传