【发布时间】:2014-07-09 05:51:52
【问题描述】:
我想知道您可以传递给函数的参数数量是否有限制。
我只是想知道,因为我必须在我的工作中维护 5+ 参数的函数。
nbArguments 中是否有一个关键阈值,谈论性能,还是线性的?
【问题讨论】:
-
我认为这不是性能问题,而是可读性问题。 Code Complete 建议的神奇数字是
7,因为人脑很难同时记住超过 7 个单位的信息。 -
越少越好,保持凝聚力。
-
理论上,限制是堆栈大小(假设有一个堆栈并且参数被推到那里)。除此之外,是的,超过 4 个开始变得有点混乱,这强烈暗示代码需要一些重构。当然,也有一些例外。我想这里的性能不是问题,你很快就会被代码维护问题而不是性能问题打败。
-
你到底在问什么?您的标题暗示了一件事,而问题的主体则是另一件事。
-
没有一成不变的幻数...如果您能找到一种方法来更好地考虑代码的可读性/可维护性/性能或其他对您很重要的东西,然后做所以。诸如在单个结构中传递多个值、传递容器(数组、映射、可能的变体)等技术可能会有所帮助....