【发布时间】:2014-02-28 09:40:03
【问题描述】:
我是 golang 的新手。是否可以在函数中将参数标记为常量? 以免参数被误修改。
【问题讨论】:
-
没有常量参数并不会阻止我们想要实现的目标,但我觉得它的存在提供了该功能的明确意图。例如 c 中的 strlen(const char *str) 表示它不会修改输入字符串。
-
Chisnall in Go Programming Language Phrasebook 建议在 Go 中始终按值传递,除非您明确需要修改参数:编译器足够聪明,知道该做什么。发明 Go 的原因之一是程序员不必担心这些细节。当我第一次开始玩 Go 时,我还尝试将 C++ 和 Delphi 类比 - 现在我不再这样做了(这里的“GoTo”家伙对此非常有帮助)
-
出于内存优化的原因,go FAQ 还建议使用引用来传递大结构,即使它们没有被修改。当 const 参数派上用场时,实际上就是这种情况。
标签: parameters go constants