知识卡片

append必须接住返回值

专业/工作 · 1372.b.1

内容

向切片追加元素要用内建的 append 函数,但它不是原地修改,而是返回一个新的切片,调用者必须 把返回值重新赋回原变量才算追加成功。发散:这个”返回值必须赋回原变量” 的写法本质是在提醒使用者,append 随时可能让你手里的引用失效,必须靠约定把这种不确定性锁定 成确定的单一来源。

参考来源

- 位置:《Head First Go语言程序设计》第6章《追加的问题:切片》(源文件:_epub-src/index_split_003.html) - 结论依据:原文在该章节围绕“向切片追加元素要用内建的append函数,但它不是原地修改,而是返回一个新的切片,调用者必须把返回值重新赋回原…”给出定义、示例或限制条件;摘录中的术语、代码片段或对比关系直接支撑本卡片的结论。 - 原始内容:答 问:如果signatures.txt文件不存在,会发生什么?getStrings会返回 nil?这不会导致显示模板时出现问题吗? 答:没必要担心。正如我们在append函数中已经看到的,Go中的其 他函数通常被设置为将nil切片和映射视为空。例如,如果向len函数传递 了一个nil切片,它只返回0: 模板action也将nil切片和映…