【发布时间】:2013-03-22 03:50:38
【问题描述】:
今天收到一位资深开发者的code review cmets,他指出的一件事是每个函数应该只有一个return语句。我想知道这只是代码风格问题还是存在安全问题,即潜在的函数堆栈问题或未初始化的变量。谁能提供一个例子(我更喜欢 C\C++\C#)来展示多个 return 语句的缺点?非常感谢。
【问题讨论】:
-
这个问题可能更适合 codereview.stackexchange.com
-
IIRC(快速的谷歌搜索没有找到任何东西,我不记得我在哪里读过它),这是因为旧的 C 或 Fortran 编译器或其他东西会被吓倒,如果你有多个回报。不过,如今,这不是问题。我会说反对多次返回是荒谬的,但话又说回来,有些人有多页方法,在那种情况下,我明白为什么它会让你不高兴(尽管真正的问题是你的方法的疯狂)。
-
这可能适用于任何没有垃圾收集的语言。
-
我的编码风格是返回所有独立路径并且不使用“返回值变量”,这在风格中经常需要单个返回语句。这实际上意味着我的许多函数都有 more 多个 return 语句。我主要使用 C# 和 JavaScript:这在语言中可能效果不佳 - cough C cough - 需要跨路径手动清理。
标签: design-patterns coding-style