![]() |
1
237
这是一个老问题,但我会拿出我的两分钱作为回答。 TL;DR-您不必这样做,但在某些情况下,它可以使您的代码更加清晰。
这是一个有点做作的例子,但是想象一下有一个像这样的小函数,它在传递的数字上加上一个,并将其分配给一个实例变量。
这是一个返回值的函数吗?很难说开发人员的意思是什么,因为它既分配实例变量,又返回分配的值。
现在函数被破坏了 . 如果没有任何东西需要返回值,则可以。很明显,如果在代码链的某个地方,调用它的东西期望返回一个值,那么它将失败,因为它无法返回它期望的值。 现在真正的问题是:有什么东西真的期望返回值吗?这是不是弄坏了什么东西?将来它会破坏什么吗?谁知道呢!只有对所有调用进行完整的代码检查才能让您知道。
因此,在我们的小演示函数的情况下,假设我们希望它返回一个值,它会这样写。。。
任何程序员都很清楚,它确实返回了一个值,而且他们很难在没有意识到的情况下破坏它。
但是为什么要省去return这个词呢?为什么不把它放在那里,让它100%清楚发生了什么?它实际上不会影响代码的执行能力。 |
![]() |
2
67
不会。好的Ruby风格通常只会对 提前返回 . Ruby热衷于代码极简主义/隐式魔术。 这就是说,如果一个明确的回报能让事情变得更清楚,或者更容易阅读,那么它不会损害任何东西。 |
![]() |
3
31
我个人使用
我使用相同的区别时 使命感 方法:函数方法有括号,过程方法没有。
最后但并非最不重要的一点是,我也使用了块的这种区别:功能块得到大括号,程序块(即“做”某事的块)得到大括号
然而,我试着不去相信它:用积木、花括号和
|
![]() |
4
13
实际上,重要的是要区分:
程序
显式返回
为了进一步区分职能和程序:
请注意,Jrg W Mittag实际上提倡另一种方法——避免
|
![]() |
5
8
The style guide
声明,您不应该使用
话虽如此,使用显式
一屏 . 在这种情况下,您可能没有看到方法定义和/或已经忘记了从何处返回。 另一方面,在Ruby中,最好坚持使用方法 less than 10 lines long
因为Ruby没有
无效的
|
![]() |
6
4
|
![]() |
7
1
这是你最喜欢哪种风格的问题。如果您想从方法中间返回某个位置,则必须使用关键字返回。 |
![]() |
8
0
|
![]() |
Alex Pander · cleaner代码的嵌套命名空间[已关闭] 7 年前 |
![]() |
Jamil Noyda · 导入模块的最佳方式Python[复制] 7 年前 |
![]() |
Samselvaprabu · 我们是否需要不惜任何代价避免重复? 7 年前 |
![]() |
user9549524 · 基于一列的值从二维矩阵中提取值 7 年前 |
![]() |
MedAl · 不使用try/catch处理异常 7 年前 |
![]() |
Declan McKenna · 特殊情况模式在Swift中是否多余? 7 年前 |