> For the complete documentation index, see [llms.txt](https://gocompiler.shizhz.me/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gocompiler.shizhz.me/8.-golang-bian-yi-qi-inline/8.2-inline-de-wen-ti.md).

# 8.2 Inline的问题

Inline 不会改变函数的行为，但会缩短程序中的函数调用链，这对于错误信息的展示是不友好的。以上述代码为例，当参数 `base=0` 时， 理想状况下程序应该汇报的错误代码位置在函数 `sum()` 内，而非 Inline 之后的 `doSum()` 中。因此编译器在 Inline 时必须维持原先代码的结构，并将其与 Inline 之后的代码关联起来，这会引入额外的复杂度。

另外一点是对某个函数进行 Inline 时，编译器会将所有调用该函数的地方进行替换，这会导致程序体积变大，最终的可执行文件也会变大。因此内联操作并不是越多越好，编译器需要找到一种平衡。
